Index: Source/core/rendering/RenderBlockFlow.cpp |
diff --git a/Source/core/rendering/RenderBlockFlow.cpp b/Source/core/rendering/RenderBlockFlow.cpp |
index e67e947b377957ed25127eac28eb31a433da3bcd..e347c71181cdadb25e860fa21ffaa7ca2b07e985 100644 |
--- a/Source/core/rendering/RenderBlockFlow.cpp |
+++ b/Source/core/rendering/RenderBlockFlow.cpp |
@@ -437,6 +437,7 @@ inline bool RenderBlockFlow::layoutBlockFlow(bool relayoutChildren, LayoutUnit & |
// Add overflow from children (unless we're multi-column, since in that case all our child overflow is clipped anyway). |
computeOverflow(oldClientAfterEdge); |
+ m_descendantsWithFloatsMarkedForLayout = false; |
return true; |
} |
@@ -1660,6 +1661,10 @@ void RenderBlockFlow::markAllDescendantsWithFloatsForLayout(RenderBox* floatToRe |
if (!everHadLayout() && !containsFloats()) |
return; |
+ if (m_descendantsWithFloatsMarkedForLayout && !floatToRemove) |
+ return; |
+ m_descendantsWithFloatsMarkedForLayout |= !floatToRemove; |
+ |
MarkingBehavior markParents = inLayout ? MarkOnlyThis : MarkContainingBlockChain; |
setChildNeedsLayout(markParents); |