diff options
| author | 2014-06-17 14:23:31 -0700 | |
|---|---|---|
| committer | 2014-06-17 14:39:15 -0700 | |
| commit | ca0608af3ce04121fc5889f93b161cbad0f7e620 (patch) | |
| tree | c10aa758cbd7bad70e51fc19b15001117062be51 | |
| parent | 29956069637f456df23d391a59bc77e545b02e05 (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.java | 13 |
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); } /** |