summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/graphics')
-rw-r--r--WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp6
-rw-r--r--WebCore/platform/graphics/android/LayerAndroid.h1
2 files changed, 5 insertions, 2 deletions
diff --git a/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp b/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp
index 8403a03..1fb36ec 100644
--- a/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp
+++ b/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp
@@ -125,7 +125,8 @@ GraphicsLayerAndroid::GraphicsLayerAndroid(GraphicsLayerClient* client) :
if (m_client) {
RenderLayerBacking* backing = static_cast<RenderLayerBacking*>(m_client);
RenderLayer* renderLayer = backing->owningLayer();
- m_contentLayer->setIsRootLayer(renderLayer->isRootLayer());
+ m_contentLayer->setIsRootLayer(renderLayer->isRootLayer() &&
+ !(renderLayer->renderer()->frame()->ownerElement()));
}
gDebugGraphicsLayerAndroidInstances++;
}
@@ -350,7 +351,8 @@ void GraphicsLayerAndroid::setMasksToBounds(bool masksToBounds)
void GraphicsLayerAndroid::setDrawsContent(bool drawsContent)
{
GraphicsLayer::setDrawsContent(drawsContent);
-
+ if (m_contentLayer->isRootLayer())
+ return;
if (m_drawsContent) {
m_haveContents = true;
setNeedsDisplay();
diff --git a/WebCore/platform/graphics/android/LayerAndroid.h b/WebCore/platform/graphics/android/LayerAndroid.h
index b6b6f70..b98d4dd 100644
--- a/WebCore/platform/graphics/android/LayerAndroid.h
+++ b/WebCore/platform/graphics/android/LayerAndroid.h
@@ -123,6 +123,7 @@ public:
void setMasksToBounds(bool);
void setIsRootLayer(bool isRootLayer) { m_isRootLayer = isRootLayer; }
+ bool isRootLayer() const { return m_isRootLayer; }
SkPicture* recordContext();