diff options
Diffstat (limited to 'WebCore/platform/graphics/android')
-rw-r--r-- | WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp b/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp index 2fa1215..d99c1cb 100644 --- a/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp +++ b/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp @@ -373,10 +373,15 @@ void GraphicsLayerAndroid::setDrawsContent(bool drawsContent) m_contentLayer->addChild(m_foregroundClipLayer); } else if (layer->isRootLayer() && layer->renderer()->frame()->ownerRenderer()) { - // Replace the content layer with a scrollable layer. - LayerAndroid* layer = new ScrollableLayerAndroid(*m_contentLayer); - m_contentLayer->unref(); - m_contentLayer = layer; + // We have to do another check for scrollable content since an + // iframe might be compositing for other reasons. + FrameView* view = layer->renderer()->frame()->view(); + if (view->hasOverflowScroll()) { + // Replace the content layer with a scrollable layer. + LayerAndroid* layer = new ScrollableLayerAndroid(*m_contentLayer); + m_contentLayer->unref(); + m_contentLayer = layer; + } } } #endif |