| Index: Source/core/rendering/RenderLayer.cpp
|
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp
|
| index a695829e1b19abbd4aea11f4f8f83fd1b9f2cf2e..13fa3e35821ad5ea00569205e2da4ce6f18fe624 100644
|
| --- a/Source/core/rendering/RenderLayer.cpp
|
| +++ b/Source/core/rendering/RenderLayer.cpp
|
| @@ -807,7 +807,7 @@ LayoutPoint RenderLayer::location() const
|
| 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();
|
| @@ -1397,8 +1397,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;
|
|
|