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; |