Index: Source/core/platform/graphics/GraphicsLayer.cpp |
diff --git a/Source/core/platform/graphics/GraphicsLayer.cpp b/Source/core/platform/graphics/GraphicsLayer.cpp |
index f7ecd9870041b38f723f51c3be37e46cfd088ae2..2973956d6728b773727f0085f837531e3ef16b0c 100644 |
--- a/Source/core/platform/graphics/GraphicsLayer.cpp |
+++ b/Source/core/platform/graphics/GraphicsLayer.cpp |
@@ -141,7 +141,6 @@ GraphicsLayer::GraphicsLayer(GraphicsLayerClient* client) |
m_opaqueRectTrackingContentLayerDelegate = adoptPtr(new OpaqueRectTrackingContentLayerDelegate(this)); |
m_layer = adoptPtr(Platform::current()->compositorSupport()->createContentLayer(m_opaqueRectTrackingContentLayerDelegate.get())); |
m_layer->layer()->setDrawsContent(m_drawsContent && m_contentsVisible); |
- m_layer->layer()->setScrollClient(this); |
m_layer->setAutomaticallyComputeRasterScale(true); |
} |
@@ -1336,6 +1335,21 @@ void GraphicsLayer::setLinkHighlight(LinkHighlightClient* linkHighlight) |
updateChildList(); |
} |
+void GraphicsLayer::setScrollableArea(ScrollableArea* scrollableArea, bool isMainFrame) |
+{ |
+ if (m_scrollableArea == scrollableArea) |
+ return; |
+ |
+ m_scrollableArea = scrollableArea; |
+ |
+ // Main frame scrolling may involve pinch zoom and gets routed through |
+ // WebViewImpl explicitly rather than via GraphicsLayer::didScroll. |
+ if (isMainFrame) |
+ m_layer->layer()->setScrollClient(0); |
+ else |
+ m_layer->layer()->setScrollClient(this); |
+} |
+ |
void GraphicsLayer::paint(GraphicsContext& context, const IntRect& clip) |
{ |
paintGraphicsLayerContents(context, clip); |