Fix invalidation issue for optimized/GL case.
The bug caused intermittent artifacts where some apps would not get
repainted until some overall screen invalidation occurred.
Change-Id: I82a3294429f15fe51cc8f4b47134e3b5540cb240
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index daf9ac4..e3a0715 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -6453,6 +6453,12 @@
mPrivateFlags &= ~DRAWING_CACHE_VALID;
final ViewParent p = mParent;
final AttachInfo ai = mAttachInfo;
+ if (p != null && ai != null && ai.mHardwareAccelerated) {
+ // fast-track for GL-enabled applications; just invalidate the whole hierarchy
+ // with a null dirty rect, which tells the ViewRoot to redraw everything
+ p.invalidateChild(this, null);
+ return;
+ }
if (p != null && ai != null && l < r && t < b) {
final int scrollX = mScrollX;
final int scrollY = mScrollY;
@@ -6496,6 +6502,12 @@
}
final AttachInfo ai = mAttachInfo;
final ViewParent p = mParent;
+ if (p != null && ai != null && ai.mHardwareAccelerated) {
+ // fast-track for GL-enabled applications; just invalidate the whole hierarchy
+ // with a null dirty rect, which tells the ViewRoot to redraw everything
+ p.invalidateChild(this, null);
+ return;
+ }
if (p != null && ai != null) {
final Rect r = ai.mTmpInvalRect;