diff options
| author | 2011-03-01 15:54:57 -0800 | |
|---|---|---|
| committer | 2011-03-01 15:54:57 -0800 | |
| commit | ffe2c7a071911b6a24954d41bbaeecd367286ba8 (patch) | |
| tree | 2253fe2ce1043b58e41f112f15d4fb959d8d2f60 | |
| parent | 549d2b15b5374e728f379739a92e382bdbaf7eaf (diff) | |
| parent | a7dabcd3dfb263468613fa2b04909c8fabb66a9d (diff) | |
Merge "Don't account for scrollX/Y when drawing a display list in a layer."
| -rw-r--r-- | core/java/android/view/ViewGroup.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 7ecf28114eb1..af4c22160247 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -2522,8 +2522,10 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager layerFlags |= Canvas.CLIP_TO_LAYER_SAVE_FLAG; } if (layerType == LAYER_TYPE_NONE) { - canvas.saveLayerAlpha(sx, sy, sx + cr - cl, sy + cb - ct, - multipliedAlpha, layerFlags); + final int scrollX = hasDisplayList ? 0 : sx; + final int scrollY = hasDisplayList ? 0 : sy; + canvas.saveLayerAlpha(scrollX, scrollY, scrollX + cr - cl, + scrollY + cb - ct, multipliedAlpha, layerFlags); } } else { // Alpha is handled by the child directly, clobber the layer's alpha @@ -2561,7 +2563,10 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager ((HardwareCanvas) canvas).drawHardwareLayer(layer, 0, 0, child.mLayerPaint); layerRendered = true; } else { - canvas.saveLayer(sx, sy, sx + cr - cl, sy + cb - ct, child.mLayerPaint, + final int scrollX = hasDisplayList ? 0 : sx; + final int scrollY = hasDisplayList ? 0 : sy; + canvas.saveLayer(scrollX, scrollY, + scrollX + cr - cl, scrollY + cb - ct, child.mLayerPaint, Canvas.HAS_ALPHA_LAYER_SAVE_FLAG | Canvas.CLIP_TO_LAYER_SAVE_FLAG); } } |