summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alan Viverette <alanv@google.com> 2014-02-21 16:48:17 -0800
committer Alan Viverette <alanv@google.com> 2014-02-21 16:48:33 -0800
commit550267f72b6217f797e7f93bb312ecbe6541ff49 (patch)
treef399cdf0c1aec107f3a41fe1fdfc59885883383d
parent4418372b21e91f6d4b9e11931dd87a90a023d79e (diff)
Fix refactoring of invalidate methods
Was incorrectly clearing the DRAWN flag and updating mLastIsOpaque from partial invalidations, though why this should be different is somewhat of a mystery. BUG: 13138721 Change-Id: Ic8d11a64406bc78e94adec7355c1f50d87567887
-rw-r--r--core/java/android/view/View.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index a3bce9ed6a7d..0665264687e0 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -11517,7 +11517,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
void invalidateInternal(int l, int t, int r, int b, boolean invalidateCache,
- boolean checkOpaque) {
+ boolean fullInvalidate) {
if (skipInvalidate()) {
return;
}
@@ -11525,9 +11525,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
if ((mPrivateFlags & (PFLAG_DRAWN | PFLAG_HAS_BOUNDS)) == (PFLAG_DRAWN | PFLAG_HAS_BOUNDS)
|| (invalidateCache && (mPrivateFlags & PFLAG_DRAWING_CACHE_VALID) == PFLAG_DRAWING_CACHE_VALID)
|| (mPrivateFlags & PFLAG_INVALIDATED) != PFLAG_INVALIDATED
- || (checkOpaque && isOpaque() != mLastIsOpaque)) {
- mLastIsOpaque = isOpaque();
- mPrivateFlags &= ~PFLAG_DRAWN;
+ || (fullInvalidate && isOpaque() != mLastIsOpaque)) {
+ if (fullInvalidate) {
+ mLastIsOpaque = isOpaque();
+ mPrivateFlags &= ~PFLAG_DRAWN;
+ }
+
mPrivateFlags |= PFLAG_DIRTY;
if (invalidateCache) {