Index: Source/core/layout/LayoutBlockFlowLine.cpp |
diff --git a/Source/core/layout/LayoutBlockFlowLine.cpp b/Source/core/layout/LayoutBlockFlowLine.cpp |
index 026dfc368696d0e63ac37a88526d786e8a397239..9f41cb93b991b9fbaeaf9c47c2ae2a38374d955d 100644 |
--- a/Source/core/layout/LayoutBlockFlowLine.cpp |
+++ b/Source/core/layout/LayoutBlockFlowLine.cpp |
@@ -745,6 +745,7 @@ void LayoutBlockFlow::layoutRunsAndFloats(LineLayoutState& layoutState) |
if (containsFloats()) |
layoutState.setLastFloat(m_floatingObjects->set().last().get()); |
+ |
leviw_travelin_and_unemployed
2015/05/11 00:25:29
Remove unnecessary empty line.
changseok
2015/05/11 15:56:46
Done.
|
// We also find the first clean line and extract these lines. We will add them back |
// if we determine that we're able to synchronize after handling all our dirty lines. |
InlineIterator cleanLineStart; |
@@ -1564,6 +1565,9 @@ void LayoutBlockFlow::layoutInlineChildren(bool relayoutChildren, LayoutUnit& pa |
if (!layoutState.hasInlineChild() && o->isInline()) |
layoutState.setHasInlineChild(true); |
+ if (o->isBR() && (o->style()->clear() != CNONE)) |
esprehn
2015/05/10 18:23:35
remove parens
changseok
2015/05/11 15:56:46
Done.
|
+ layoutState.setContainsClearBR(true); |
+ |
if (o->isReplaced() || o->isFloating() || o->isOutOfFlowPositioned()) { |
LayoutBox* box = toLayoutBox(o); |
@@ -1857,7 +1861,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.containsClearBR())) |
esprehn
2015/05/10 18:23:35
remove extra parens on the first expr.
changseok
2015/05/11 15:56:46
Done.
|
return false; |
return checkPaginationAndFloatsAtEndLine(layoutState); |
} |