summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-03-01 15:54:57 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-03-01 15:54:57 -0800
commitffe2c7a071911b6a24954d41bbaeecd367286ba8 (patch)
tree2253fe2ce1043b58e41f112f15d4fb959d8d2f60 /core
parent549d2b15b5374e728f379739a92e382bdbaf7eaf (diff)
parenta7dabcd3dfb263468613fa2b04909c8fabb66a9d (diff)
downloadframeworks_base-ffe2c7a071911b6a24954d41bbaeecd367286ba8.zip
frameworks_base-ffe2c7a071911b6a24954d41bbaeecd367286ba8.tar.gz
frameworks_base-ffe2c7a071911b6a24954d41bbaeecd367286ba8.tar.bz2
Merge "Don't account for scrollX/Y when drawing a display list in a layer."
Diffstat (limited to 'core')
-rw-r--r--core/java/android/view/ViewGroup.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 7ecf281..af4c221 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);
}
}