| Index: Source/core/rendering/RenderBox.cpp
|
| diff --git a/Source/core/rendering/RenderBox.cpp b/Source/core/rendering/RenderBox.cpp
|
| index c7d0398f693495644bb18eba689f214060f9cc47..f9cda51f0481a290320c2987193775a420b1349f 100644
|
| --- a/Source/core/rendering/RenderBox.cpp
|
| +++ b/Source/core/rendering/RenderBox.cpp
|
| @@ -46,6 +46,7 @@
|
| #include "core/rendering/PaintInfo.h"
|
| #include "core/rendering/RenderDeprecatedFlexibleBox.h"
|
| #include "core/rendering/RenderFlexibleBox.h"
|
| +#include "core/rendering/RenderFlowThread.h"
|
| #include "core/rendering/RenderGeometryMap.h"
|
| #include "core/rendering/RenderGrid.h"
|
| #include "core/rendering/RenderInline.h"
|
| @@ -1426,7 +1427,11 @@ LayoutUnit RenderBox::containingBlockLogicalWidthForContent() const
|
| if (hasOverrideContainingBlockLogicalWidth())
|
| return overrideContainingBlockContentLogicalWidth();
|
|
|
| - RenderBlock* cb = containingBlock();
|
| + RenderBlock* cb;
|
| + if (isColumnSpanAll())
|
| + cb = flowThreadContainingBlock()->containingBlock();
|
| + else
|
| + cb = containingBlock();
|
| return cb->availableLogicalWidth();
|
| }
|
|
|
| @@ -1435,7 +1440,11 @@ LayoutUnit RenderBox::containingBlockLogicalHeightForContent(AvailableLogicalHei
|
| if (hasOverrideContainingBlockLogicalHeight())
|
| return overrideContainingBlockContentLogicalHeight();
|
|
|
| - RenderBlock* cb = containingBlock();
|
| + RenderBlock* cb;
|
| + if (isColumnSpanAll())
|
| + cb = flowThreadContainingBlock()->containingBlock();
|
| + else
|
| + cb = containingBlock();
|
| return cb->availableLogicalHeight(heightType);
|
| }
|
|
|
| @@ -4120,7 +4129,11 @@ bool RenderBox::hasUnsplittableScrollingOverflow() const
|
|
|
| bool RenderBox::isUnsplittableForPagination() const
|
| {
|
| - return isReplaced() || hasUnsplittableScrollingOverflow() || (parent() && isWritingModeRoot());
|
| + // FIXME: column spanners are only unsplittable (or rather: they do not participate in
|
| + // fragmentation) in their nearest ancestor multicol container. If there are additional
|
| + // fragmentation contexts further up in the tree, spanners still need to take those into
|
| + // account.
|
| + return isReplaced() || hasUnsplittableScrollingOverflow() || (parent() && isWritingModeRoot()) || isColumnSpanAll();
|
| }
|
|
|
| LayoutUnit RenderBox::lineHeight(bool /*firstLine*/, LineDirectionMode direction, LinePositionMode /*linePositionMode*/) const
|
|
|