Index: Source/WebCore/rendering/RenderBlock.cpp |
=================================================================== |
--- Source/WebCore/rendering/RenderBlock.cpp (revision 109439) |
+++ Source/WebCore/rendering/RenderBlock.cpp (working copy) |
@@ -852,8 +852,12 @@ |
// We are nested inside a multi-column element and are being split by the span. We have to break up |
// our block into continuations. |
RenderBoxModelObject* oldContinuation = continuation(); |
- setContinuation(newBox); |
+ // When we split an anonymous block, there's no need to do any continuation hookup, |
+ // since we haven't actually split a real element. |
+ if (!isAnonymousBlock()) |
+ setContinuation(newBox); |
+ |
// Someone may have put a <p> inside a <q>, causing a split. When this happens, the :after content |
// has to move into the inline continuation. Call updateBeforeAfterContent to ensure that our :after |
// content gets properly destroyed. |
@@ -1757,6 +1761,10 @@ |
return false; |
// FIXME: We don't handle non-block elements with run-in for now. |
if (!child->isRenderBlock()) |
+ return false; |
+ // Run-in child shouldn't intrude into the sibling block if it is part of a |
+ // continuation chain. In that case, treat it as a normal block. |
+ if (child->isElementContinuation() || child->virtualContinuation()) |
return false; |
RenderBlock* blockRunIn = toRenderBlock(child); |