summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2014-06-17 14:23:31 -0700
committer John Reck <jreck@google.com> 2014-06-17 14:39:15 -0700
commitca0608af3ce04121fc5889f93b161cbad0f7e620 (patch)
treec10aa758cbd7bad70e51fc19b15001117062be51
parent29956069637f456df23d391a59bc77e545b02e05 (diff)
Fix setLayerType
Bug: 15682142 mLayerType/getLayerType() can modify the display list, so invalidate() is necessary Change-Id: I1d323c1bd4356b31159b51d4299de099e53a0389
-rw-r--r--core/java/android/view/View.java13
1 files changed, 4 insertions, 9 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index b9e56f36b543..d780c880660d 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -13432,8 +13432,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
// Destroy any previous software drawing cache if needed
if (mLayerType == LAYER_TYPE_SOFTWARE) {
destroyDrawingCache();
- invalidateParentCaches();
- invalidate(true);
}
mLayerType = layerType;
@@ -13441,13 +13439,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mLayerPaint = layerDisabled ? null : (paint == null ? new Paint() : paint);
mRenderNode.setLayerPaint(mLayerPaint);
- if (mLayerType == LAYER_TYPE_SOFTWARE) {
- // LAYER_TYPE_SOFTWARE is handled by View:draw(), so need to invalidate()
- invalidateParentCaches();
- invalidate(true);
- } else {
- invalidateViewProperty(false, false);
- }
+ // draw() behaves differently if we are on a layer, so we need to
+ // invalidate() here
+ invalidateParentCaches();
+ invalidate(true);
}
/**