Chromium Code Reviews| Index: Source/core/rendering/compositing/CompositedLayerMapping.cpp |
| diff --git a/Source/core/rendering/compositing/CompositedLayerMapping.cpp b/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
| index fcdf3a996d4f36100e1656bad5a6fc1413d103a9..ac460b5825ffd54c8ee995681dc1ebb5b2e08b63 100644 |
| --- a/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
| +++ b/Source/core/rendering/compositing/CompositedLayerMapping.cpp |
| @@ -870,6 +870,7 @@ GraphicsLayerUpdater::UpdateType CompositedLayerMapping::updateGraphicsLayerGeom |
| updateRenderingContext(); |
| updateShouldFlattenTransform(); |
| updateChildrenTransform(); |
| + updateScrollParent(m_owningLayer.scrollParent()); |
|
abarth-chromium
2014/03/12 18:45:40
This function walks up the RenderLayer tree. Inst
Ian Vollick
2014/03/12 20:03:32
Agreed, though it's a little tricky since a layer'
|
| registerScrollingLayers(); |
| updateCompositingReasons(); |
| @@ -1396,9 +1397,12 @@ static void updateScrollParentForGraphicsLayer(GraphicsLayer* layer, GraphicsLay |
| void CompositedLayerMapping::updateScrollParent(RenderLayer* scrollParent) |
| { |
| + if (!scrollParent && m_squashedLayers.size()) |
| + scrollParent = m_squashedLayers[0].renderLayer->scrollParent(); |
| if (ScrollingCoordinator* scrollingCoordinator = scrollingCoordinatorFromLayer(m_owningLayer)) { |
| - GraphicsLayer* topmostLayer = localRootForOwningLayer(); |
| + GraphicsLayer* topmostLayer = childForSuperlayers(); |
| + updateScrollParentForGraphicsLayer(m_squashingContainmentLayer.get(), topmostLayer, scrollParent, scrollingCoordinator); |
| updateScrollParentForGraphicsLayer(m_ancestorClippingLayer.get(), topmostLayer, scrollParent, scrollingCoordinator); |
| updateScrollParentForGraphicsLayer(m_graphicsLayer.get(), topmostLayer, scrollParent, scrollingCoordinator); |
| } |