| Index: Source/core/rendering/RenderLayer.cpp
|
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp
|
| index 9c306c9dd320254c78ad2ed96a6a0be03fe7c60c..de7234cdb0d11680e679e78f1793bed94151fa49 100644
|
| --- a/Source/core/rendering/RenderLayer.cpp
|
| +++ b/Source/core/rendering/RenderLayer.cpp
|
| @@ -1491,7 +1491,14 @@ void RenderLayer::collectFragments(LayerFragments& fragments, const RenderLayer*
|
|
|
| // Shift the dirty rect into flow thread coordinates.
|
| LayoutPoint offsetOfPaginationLayerFromRoot;
|
| - enclosingPaginationLayer()->convertToLayerCoords(rootLayer, offsetOfPaginationLayerFromRoot);
|
| + if (rootLayer != enclosingPaginationLayer() && rootLayer->enclosingPaginationLayer() == enclosingPaginationLayer()) {
|
| + // The root layer is inside our pagination layer.
|
| + // FIXME: more work needed if there are nested pagination layers.
|
| + rootLayer->convertToLayerCoords(enclosingPaginationLayer(), offsetOfPaginationLayerFromRoot);
|
| + offsetOfPaginationLayerFromRoot = -offsetOfPaginationLayerFromRoot;
|
| + } else {
|
| + enclosingPaginationLayer()->convertToLayerCoords(rootLayer, offsetOfPaginationLayerFromRoot);
|
| + }
|
| LayoutRect dirtyRectInFlowThread(dirtyRect);
|
| dirtyRectInFlowThread.moveBy(-offsetOfPaginationLayerFromRoot);
|
|
|
|
|