summaryrefslogtreecommitdiffstats
path: root/WebCore/platform
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform')
-rw-r--r--WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp8
-rw-r--r--WebCore/platform/graphics/android/GraphicsLayerAndroid.h5
2 files changed, 13 insertions, 0 deletions
diff --git a/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp b/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp
index fa4a180..3571a49 100644
--- a/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp
+++ b/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp
@@ -115,6 +115,7 @@ GraphicsLayerAndroid::GraphicsLayerAndroid(GraphicsLayerClient* client) :
m_needsNotifyClient(false),
m_haveContents(false),
m_haveImage(false),
+ m_hasFixedLayers(false),
m_translateX(0),
m_translateY(0),
m_currentTranslateX(0),
@@ -253,6 +254,13 @@ void GraphicsLayerAndroid::updateFixedPosition()
offsetFromRenderer().width(),
offsetFromRenderer().height(),
w, h);
+
+ GraphicsLayerAndroid* rootGraphicsLayer = this;
+
+ while (rootGraphicsLayer->parent())
+ rootGraphicsLayer = static_cast<GraphicsLayerAndroid*>(rootGraphicsLayer->parent());
+
+ rootGraphicsLayer->setHasFixedLayers(true);
}
}
diff --git a/WebCore/platform/graphics/android/GraphicsLayerAndroid.h b/WebCore/platform/graphics/android/GraphicsLayerAndroid.h
index 25f70b4..d0347a7 100644
--- a/WebCore/platform/graphics/android/GraphicsLayerAndroid.h
+++ b/WebCore/platform/graphics/android/GraphicsLayerAndroid.h
@@ -121,6 +121,9 @@ public:
void sendImmediateRepaint();
LayerAndroid* contentLayer() { return m_contentLayer; }
+ bool hasFixedLayers() const { return m_hasFixedLayers; }
+ void setHasFixedLayers(bool val) { m_hasFixedLayers = val; }
+
static int instancesCount();
private:
@@ -139,6 +142,8 @@ private:
bool m_haveContents;
bool m_haveImage;
+ bool m_hasFixedLayers;
+
float m_translateX;
float m_translateY;
float m_currentTranslateX;