summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/layers
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2012-05-04 13:50:04 -0700
committerGeorge Mount <mount@google.com>2012-05-04 15:17:50 -0700
commit0e43fd01178d539d44a5dfade3bf15aa6efbe02a (patch)
treeca56c050f55c0e20714c81508b0e7819c1700fa4 /Source/WebCore/platform/graphics/android/layers
parent38c837307303e521ec0d1c9f7c0df7bd78dd53a5 (diff)
downloadexternal_webkit-0e43fd01178d539d44a5dfade3bf15aa6efbe02a.zip
external_webkit-0e43fd01178d539d44a5dfade3bf15aa6efbe02a.tar.gz
external_webkit-0e43fd01178d539d44a5dfade3bf15aa6efbe02a.tar.bz2
Ensure updateGLPositionsAndScale is called from updateLayerPosition.
Bug 6436989 The layer transform was not being updated quickly enough after a draw, causing the thumb selection handle to become misplaced. Change-Id: I6cd33baaaba258c9d0977f06e7793ade2816b95d
Diffstat (limited to 'Source/WebCore/platform/graphics/android/layers')
-rw-r--r--Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp8
-rw-r--r--Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp b/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
index bc3b04b..4f89dc9 100644
--- a/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
+++ b/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.cpp
@@ -69,6 +69,14 @@ IFrameLayerAndroid* BaseLayerAndroid::updatePosition(SkRect viewport,
return LayerAndroid::updatePosition(viewport, parentIframeLayer);
}
+void BaseLayerAndroid::updatePositionsRecursive(const SkRect& visibleContentRect)
+{
+ updateLayerPositions(visibleContentRect);
+ TransformationMatrix ident;
+ FloatRect clip(0, 0, 1e10, 1e10);
+ updateGLPositionsAndScale(ident, clip, 1, state()->scale());
+}
+
ForegroundBaseLayerAndroid::ForegroundBaseLayerAndroid(LayerContent* content)
: LayerAndroid((RenderLayer*)0)
{
diff --git a/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.h b/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.h
index dc4c25f..6275dfd 100644
--- a/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.h
+++ b/Source/WebCore/platform/graphics/android/layers/BaseLayerAndroid.h
@@ -42,6 +42,7 @@ public:
virtual bool needsTexture() { return content(); }
virtual IFrameLayerAndroid* updatePosition(SkRect viewport,
IFrameLayerAndroid* parentIframeLayer);
+ void updatePositionsRecursive(const SkRect& visibleContentRect);
void setBackgroundColor(Color& color) { m_color = color; }
Color getBackgroundColor() { return m_color; }