summaryrefslogtreecommitdiff
path: root/core/java/android/view/View.java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-01-21 19:02:05 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-01-21 19:02:05 -0800
commit596ba2fa791db7ae671bd79c346b54a7ea2f8113 (patch)
treeaa35c423378dc2282e79018331fe7e8b9ca278e0 /core/java/android/view/View.java
parentfa9d452b45a6c10666ff5d36bfbac8da37f33ac5 (diff)
parentc5d55863ec0290370a17d37d06feab743626b12f (diff)
Merge "Correctly invalidate views that transition from opaque to non-opaque. Bug #3337037" into honeycomb
Diffstat (limited to 'core/java/android/view/View.java')
-rw-r--r--core/java/android/view/View.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index b41687e4dabe..469bbaaf8d07 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -1813,6 +1813,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
private int mPrevWidth = -1;
private int mPrevHeight = -1;
+ private boolean mLastIsOpaque;
+
/**
* Convenience value to check for float values that are close enough to zero to be considered
* zero.
@@ -6726,7 +6728,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
public void invalidate() {
invalidate(true);
}
-
+
/**
* This is where the invalidate() work actually happens. A full invalidate()
* causes the drawing cache to be invalidated, but this function can be called with
@@ -6743,8 +6745,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
ViewDebug.trace(this, ViewDebug.HierarchyTraceType.INVALIDATE);
}
+ boolean opaque = isOpaque();
if ((mPrivateFlags & (DRAWN | HAS_BOUNDS)) == (DRAWN | HAS_BOUNDS) ||
- (invalidateCache && (mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID)) {
+ (invalidateCache && (mPrivateFlags & DRAWING_CACHE_VALID) == DRAWING_CACHE_VALID) ||
+ opaque != mLastIsOpaque) {
+ mLastIsOpaque = opaque;
mPrivateFlags &= ~DRAWN;
if (invalidateCache) {
mPrivateFlags &= ~DRAWING_CACHE_VALID;