| Index: Source/core/rendering/RenderBlockFlow.cpp
|
| diff --git a/Source/core/rendering/RenderBlockFlow.cpp b/Source/core/rendering/RenderBlockFlow.cpp
|
| index 79571ad4b80534c6cc8771980d42f5d73a334acc..817185fd5b1d2220251e4d6d6945eab835291ceb 100644
|
| --- a/Source/core/rendering/RenderBlockFlow.cpp
|
| +++ b/Source/core/rendering/RenderBlockFlow.cpp
|
| @@ -899,7 +899,7 @@ void RenderBlockFlow::rebuildFloatsFromIntruding()
|
| }
|
|
|
| // Inline blocks are covered by the isReplaced() check in the avoidFloats method.
|
| - if (avoidsFloats() || isDocumentElement() || isRenderView() || isFloatingOrOutOfFlowPositioned() || isTableCell()) {
|
| + if (avoidsOrIgnoresFloats() || isRenderView()) {
|
| if (m_floatingObjects) {
|
| m_floatingObjects->clear();
|
| }
|
| @@ -929,7 +929,7 @@ void RenderBlockFlow::rebuildFloatsFromIntruding()
|
| RenderBlockFlow* parentBlockFlow = toRenderBlockFlow(parent());
|
| bool parentHasFloats = false;
|
| RenderObject* prev = previousSibling();
|
| - while (prev && (!prev->isBox() || !prev->isRenderBlock() || toRenderBlock(prev)->avoidsFloats() || toRenderBlock(prev)->createsBlockFormattingContext())) {
|
| + while (prev && (!prev->isBox() || !prev->isRenderBlock() || toRenderBlock(prev)->avoidsOrIgnoresFloats())) {
|
| if (prev->isFloating())
|
| parentHasFloats = true;
|
| prev = prev->previousSibling();
|
| @@ -1838,7 +1838,7 @@ void RenderBlockFlow::markSiblingsWithFloatsForLayout(RenderBox* floatToRemove)
|
| FloatingObjectSetIterator end = floatingObjectSet.end();
|
|
|
| for (RenderObject* next = nextSibling(); next; next = next->nextSibling()) {
|
| - if (!next->isRenderBlockFlow() || next->isFloatingOrOutOfFlowPositioned() || toRenderBlockFlow(next)->avoidsFloats())
|
| + if (!next->isRenderBlockFlow() || toRenderBlockFlow(next)->avoidsOrIgnoresFloats())
|
| continue;
|
|
|
| RenderBlockFlow* nextBlock = toRenderBlockFlow(next);
|
| @@ -1917,7 +1917,7 @@ void RenderBlockFlow::createFloatingObjects()
|
| void RenderBlockFlow::styleWillChange(StyleDifference diff, const RenderStyle& newStyle)
|
| {
|
| RenderStyle* oldStyle = style();
|
| - s_canPropagateFloatIntoSibling = oldStyle ? !isFloatingOrOutOfFlowPositioned() && !avoidsFloats() : false;
|
| + s_canPropagateFloatIntoSibling = oldStyle ? !avoidsOrIgnoresFloats() : false;
|
| if (oldStyle && parent() && diff.needsFullLayout() && oldStyle->position() != newStyle.position()
|
| && containsFloats() && !isFloating() && !isOutOfFlowPositioned() && newStyle.hasOutOfFlowPosition())
|
| markAllDescendantsWithFloatsForLayout();
|
| @@ -1933,7 +1933,7 @@ void RenderBlockFlow::styleDidChange(StyleDifference diff, const RenderStyle* ol
|
| // blocks, then we need to find the top most parent containing that overhanging float and
|
| // then mark its descendants with floats for layout and clear all floats from its next
|
| // sibling blocks that exist in our floating objects list. See bug 56299 and 62875.
|
| - bool canPropagateFloatIntoSibling = !isFloatingOrOutOfFlowPositioned() && !avoidsFloats();
|
| + bool canPropagateFloatIntoSibling = !avoidsOrIgnoresFloats();
|
| if (diff.needsFullLayout() && s_canPropagateFloatIntoSibling && !canPropagateFloatIntoSibling && hasOverhangingFloats()) {
|
| RenderBlockFlow* parentBlockFlow = this;
|
| const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
|
| @@ -2710,13 +2710,6 @@ void RenderBlockFlow::setPaginationStrut(LayoutUnit strut)
|
| m_rareData->m_paginationStrut = strut;
|
| }
|
|
|
| -bool RenderBlockFlow::avoidsFloats() const
|
| -{
|
| - // Floats can't intrude into our box if we have a non-auto column count or width.
|
| - // Note: we need to use RenderBox::avoidsFloats here since RenderBlock::avoidsFloats is always true.
|
| - return RenderBox::avoidsFloats() || !style()->hasAutoColumnCount() || !style()->hasAutoColumnWidth();
|
| -}
|
| -
|
| LayoutUnit RenderBlockFlow::logicalLeftSelectionOffset(const RenderBlock* rootBlock, LayoutUnit position) const
|
| {
|
| LayoutUnit logicalLeft = logicalLeftOffsetForLine(position, false);
|
|
|