| Index: Source/core/rendering/RenderLayer.cpp
|
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp
|
| index 610e046567f75fcb790c16dee674c4a9542e91ee..7fc3811f35e492369399172d704e5fef4f139eb6 100644
|
| --- a/Source/core/rendering/RenderLayer.cpp
|
| +++ b/Source/core/rendering/RenderLayer.cpp
|
| @@ -818,7 +818,7 @@ bool RenderLayer::updateLayerPosition()
|
| localPoint.moveBy(box->topLeftLocation());
|
| }
|
|
|
| - if (!renderer()->isOutOfFlowPositioned() && renderer()->parent()) {
|
| + if (!renderer()->isOutOfFlowPositioned() && !renderer()->isColumnSpanAll() && renderer()->parent()) {
|
| // We must adjust our position by walking up the render tree looking for the
|
| // nearest enclosing object with a layer.
|
| RenderObject* curr = renderer()->parent();
|
| @@ -1427,8 +1427,14 @@ static inline const RenderLayer* accumulateOffsetTowardsAncestor(const RenderLay
|
| location += (thisCoords - ancestorCoords);
|
| return ancestorLayer;
|
| }
|
| - } else
|
| + } else if (renderer->isColumnSpanAll()) {
|
| + RenderBlock* multicolContainer = renderer->containingBlock();
|
| + ASSERT(toRenderBlockFlow(multicolContainer)->multiColumnFlowThread());
|
| + parentLayer = multicolContainer->layer();
|
| + ASSERT(parentLayer);
|
| + } else {
|
| parentLayer = layer->parent();
|
| + }
|
|
|
| if (!parentLayer)
|
| return 0;
|
|
|