| Index: Source/core/rendering/RenderBlock.cpp
|
| diff --git a/Source/core/rendering/RenderBlock.cpp b/Source/core/rendering/RenderBlock.cpp
|
| index a1d94cdef85ba53682b4fbd83d968893fdd8dfe7..1b63df3ee3d758186366cc5d4738a3e749797f03 100644
|
| --- a/Source/core/rendering/RenderBlock.cpp
|
| +++ b/Source/core/rendering/RenderBlock.cpp
|
| @@ -698,9 +698,9 @@ void RenderBlock::splitFlow(RenderObject* beforeChild, RenderBlock* newBlockBox,
|
| // Always just do a full layout in order to ensure that line boxes (especially wrappers for images)
|
| // get deleted properly. Because objects moves from the pre block into the post block, we want to
|
| // make new line boxes instead of leaving the old line boxes around.
|
| - pre->setNeedsLayoutAndPrefWidthsRecalc();
|
| - block->setNeedsLayoutAndPrefWidthsRecalc();
|
| - post->setNeedsLayoutAndPrefWidthsRecalc();
|
| + pre->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
|
| + block->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
|
| + post->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
|
| }
|
|
|
| void RenderBlock::makeChildrenAnonymousColumnBlocks(RenderObject* beforeChild, RenderBlockFlow* newBlockBox, RenderObject* newChild)
|
| @@ -748,10 +748,10 @@ void RenderBlock::makeChildrenAnonymousColumnBlocks(RenderObject* beforeChild, R
|
| // get deleted properly. Because objects moved from the pre block into the post block, we want to
|
| // make new line boxes instead of leaving the old line boxes around.
|
| if (pre)
|
| - pre->setNeedsLayoutAndPrefWidthsRecalc();
|
| - block->setNeedsLayoutAndPrefWidthsRecalc();
|
| + pre->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
|
| + block->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
|
| if (post)
|
| - post->setNeedsLayoutAndPrefWidthsRecalc();
|
| + post->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
|
| }
|
|
|
| RenderBlockFlow* RenderBlock::columnsBlockForSpanningElement(RenderObject* newChild)
|
| @@ -1084,7 +1084,7 @@ void RenderBlock::collapseAnonymousBlockChild(RenderBlock* parent, RenderBlock*
|
| // destroyed. See crbug.com/282088
|
| if (child->beingDestroyed())
|
| return;
|
| - parent->setNeedsLayoutAndPrefWidthsRecalc();
|
| + parent->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
|
| parent->setChildrenInline(child->childrenInline());
|
| RenderObject* nextSibling = child->nextSibling();
|
|
|
| @@ -1118,7 +1118,7 @@ void RenderBlock::removeChild(RenderObject* oldChild)
|
| RenderObject* next = oldChild->nextSibling();
|
| bool canMergeAnonymousBlocks = canMergeContiguousAnonymousBlocks(oldChild, prev, next);
|
| if (canMergeAnonymousBlocks && prev && next) {
|
| - prev->setNeedsLayoutAndPrefWidthsRecalc();
|
| + prev->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
|
| RenderBlockFlow* nextBlock = toRenderBlockFlow(next);
|
| RenderBlockFlow* prevBlock = toRenderBlockFlow(prev);
|
|
|
| @@ -1140,7 +1140,7 @@ void RenderBlock::removeChild(RenderObject* oldChild)
|
| // Now just put the inlineChildrenBlock inside the blockChildrenBlock.
|
| blockChildrenBlock->children()->insertChildNode(blockChildrenBlock, inlineChildrenBlock, prev == inlineChildrenBlock ? blockChildrenBlock->firstChild() : 0,
|
| inlineChildrenBlockHasLayer || blockChildrenBlock->hasLayer());
|
| - next->setNeedsLayoutAndPrefWidthsRecalc();
|
| + next->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint();
|
|
|
| // inlineChildrenBlock got reparented to blockChildrenBlock, so it is no longer a child
|
| // of "this". we null out prev or next so that is not used later in the function.
|
| @@ -1679,7 +1679,7 @@ void RenderBlock::layoutPositionedObjects(bool relayoutChildren, PositionedLayou
|
| // FIXME: We should be able to do a r->setNeedsPositionedMovementLayout() here instead of a full layout. Need
|
| // to investigate why it does not trigger the correct invalidations in that case. crbug.com/350756
|
| if (info == ForcedLayoutAfterContainingBlockMoved)
|
| - r->setNeedsLayout();
|
| + r->setNeedsLayoutAndFullRepaint();
|
|
|
| r->layoutIfNeeded();
|
|
|
|
|