| Index: Source/core/layout/LayoutObject.cpp
|
| diff --git a/Source/core/layout/LayoutObject.cpp b/Source/core/layout/LayoutObject.cpp
|
| index 7e9ab723a1c2e308924e62d2f579e4edf9eb9d4e..50ed1fff8f775fd5b99a70006c1b2bba4162cc82 100644
|
| --- a/Source/core/layout/LayoutObject.cpp
|
| +++ b/Source/core/layout/LayoutObject.cpp
|
| @@ -742,6 +742,16 @@ static inline bool objectIsRelayoutBoundary(const LayoutObject* object)
|
| if (object->isTablePart())
|
| return false;
|
|
|
| + // Inside multicol it's generally problematic to allow relayout roots. The multicol container
|
| + // itself may be scheduled for relayout as well (due to other changes that may have happened
|
| + // since the previous layout pass), which might affect the column heights, which may affect how
|
| + // this object breaks across columns). Spanners may also have been added or removed since the
|
| + // previous layout pass, which is just another way of affecting the column heights (and the
|
| + // number of rows). Instead of identifying cases where it's safe to allow relayout roots, just
|
| + // disallow them inside multicol.
|
| + if (object->isInsideFlowThread())
|
| + return false;
|
| +
|
| return true;
|
| }
|
|
|
|
|