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(); |