summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2014-02-21 16:48:17 -0800
committerAlan Viverette <alanv@google.com>2014-02-21 16:48:33 -0800
commit550267f72b6217f797e7f93bb312ecbe6541ff49 (patch)
treef399cdf0c1aec107f3a41fe1fdfc59885883383d /core/java
parent4418372b21e91f6d4b9e11931dd87a90a023d79e (diff)
downloadframeworks_base-550267f72b6217f797e7f93bb312ecbe6541ff49.zip
frameworks_base-550267f72b6217f797e7f93bb312ecbe6541ff49.tar.gz
frameworks_base-550267f72b6217f797e7f93bb312ecbe6541ff49.tar.bz2
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
Diffstat (limited to 'core/java')
-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 a3bce9e..0665264 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) {