Index: Source/core/layout/LayoutBlockFlowLine.cpp |
diff --git a/Source/core/layout/LayoutBlockFlowLine.cpp b/Source/core/layout/LayoutBlockFlowLine.cpp |
index f50503df8f4ac7314d450abc495ec79108cc2260..afaf3a8a017148e3f4034ed1b872791deb5fd106 100644 |
--- a/Source/core/layout/LayoutBlockFlowLine.cpp |
+++ b/Source/core/layout/LayoutBlockFlowLine.cpp |
@@ -1563,6 +1563,9 @@ void LayoutBlockFlow::layoutInlineChildren(bool relayoutChildren, LayoutUnit& pa |
if (!layoutState.hasInlineChild() && o->isInline()) |
layoutState.setHasInlineChild(true); |
+ if (o->isBR() && o->style()->clear() != CNONE) |
leviw_travelin_and_unemployed
2015/05/14 02:22:19
It's sad that we're doing this whenever there's an
changseok
2015/05/14 16:18:46
Yeah.. Do you have any better idea to reduce itera
|
+ layoutState.setContainsBRWithClear(true); |
+ |
if (o->isReplaced() || o->isFloating() || o->isOutOfFlowPositioned()) { |
LayoutBox* box = toLayoutBox(o); |
@@ -1856,7 +1859,7 @@ bool LayoutBlockFlow::checkPaginationAndFloatsAtEndLine(LineLayoutState& layoutS |
bool LayoutBlockFlow::matchedEndLine(LineLayoutState& layoutState, const InlineBidiResolver& resolver, const InlineIterator& endLineStart, const BidiStatus& endLineStatus) |
{ |
if (resolver.position() == endLineStart) { |
- if (resolver.status() != endLineStatus) |
+ if (resolver.status() != endLineStatus || (containsFloats() && layoutState.containsBRWithClear())) |
leviw_travelin_and_unemployed
2015/05/14 02:22:19
I think I'd prefer the following:
if (resolver.st
changseok
2015/05/14 16:18:46
Make sense.
|
return false; |
return checkPaginationAndFloatsAtEndLine(layoutState); |
} |