| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
| 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
| 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 | 378 |
| 379 // Take care of positioned objects. This is required as LayoutState keeps a
single clip rect. | 379 // Take care of positioned objects. This is required as LayoutState keeps a
single clip rect. |
| 380 if (TrackedRendererListHashSet* positionedObjects = this->positionedObjects(
)) { | 380 if (TrackedRendererListHashSet* positionedObjects = this->positionedObjects(
)) { |
| 381 TrackedRendererListHashSet::iterator end = positionedObjects->end(); | 381 TrackedRendererListHashSet::iterator end = positionedObjects->end(); |
| 382 LayoutStateMaintainer statePusher(*this, isTableRow() ? LayoutSize() : l
ocationOffset()); | 382 LayoutStateMaintainer statePusher(*this, isTableRow() ? LayoutSize() : l
ocationOffset()); |
| 383 for (TrackedRendererListHashSet::iterator it = positionedObjects->begin(
); it != end; ++it) { | 383 for (TrackedRendererListHashSet::iterator it = positionedObjects->begin(
); it != end; ++it) { |
| 384 RenderBox* box = *it; | 384 RenderBox* box = *it; |
| 385 | 385 |
| 386 // One of the renderers we're skipping over here may be the child's
repaint container, | 386 // One of the renderers we're skipping over here may be the child's
repaint container, |
| 387 // so we can't pass our own repaint container along. | 387 // so we can't pass our own repaint container along. |
| 388 const RenderLayerModelObject& repaintContainerForChild = *box->conta
inerForRepaint(); | 388 const RenderLayerModelObject& repaintContainerForChild = *box->conta
inerForPaintInvalidation(); |
| 389 | 389 |
| 390 // If the positioned renderer is absolutely positioned and it is ins
ide | 390 // If the positioned renderer is absolutely positioned and it is ins
ide |
| 391 // a relatively positioend inline element, we need to account for | 391 // a relatively positioend inline element, we need to account for |
| 392 // the inline elements position in LayoutState. | 392 // the inline elements position in LayoutState. |
| 393 if (box->style()->position() == AbsolutePosition) { | 393 if (box->style()->position() == AbsolutePosition) { |
| 394 RenderObject* container = box->container(&repaintContainerForChi
ld, 0); | 394 RenderObject* container = box->container(&repaintContainerForChi
ld, 0); |
| 395 if (container->isInFlowPositioned() && container->isRenderInline
()) { | 395 if (container->isInFlowPositioned() && container->isRenderInline
()) { |
| 396 // FIXME: We should be able to use layout-state for this. | 396 // FIXME: We should be able to use layout-state for this. |
| 397 // Currently, we will place absolutly positioned elements in
side | 397 // Currently, we will place absolutly positioned elements in
side |
| 398 // relatively positioned inline blocks in the wrong location
. crbug.com/371485 | 398 // relatively positioned inline blocks in the wrong location
. crbug.com/371485 |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 700 | 700 |
| 701 // We already know the newBlockBox isn't going to contain inline kids, so av
oid wasting | 701 // We already know the newBlockBox isn't going to contain inline kids, so av
oid wasting |
| 702 // time in makeChildrenNonInline by just setting this explicitly up front. | 702 // time in makeChildrenNonInline by just setting this explicitly up front. |
| 703 newBlockBox->setChildrenInline(false); | 703 newBlockBox->setChildrenInline(false); |
| 704 | 704 |
| 705 newBlockBox->addChild(newChild); | 705 newBlockBox->addChild(newChild); |
| 706 | 706 |
| 707 // Always just do a full layout in order to ensure that line boxes (especial
ly wrappers for images) | 707 // Always just do a full layout in order to ensure that line boxes (especial
ly wrappers for images) |
| 708 // get deleted properly. Because objects moves from the pre block into the
post block, we want to | 708 // get deleted properly. Because objects moves from the pre block into the
post block, we want to |
| 709 // make new line boxes instead of leaving the old line boxes around. | 709 // make new line boxes instead of leaving the old line boxes around. |
| 710 pre->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint(); | 710 pre->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
| 711 block->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint(); | 711 block->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
| 712 post->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint(); | 712 post->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
| 713 } | 713 } |
| 714 | 714 |
| 715 void RenderBlock::makeChildrenAnonymousColumnBlocks(RenderObject* beforeChild, R
enderBlockFlow* newBlockBox, RenderObject* newChild) | 715 void RenderBlock::makeChildrenAnonymousColumnBlocks(RenderObject* beforeChild, R
enderBlockFlow* newBlockBox, RenderObject* newChild) |
| 716 { | 716 { |
| 717 RenderBlockFlow* pre = 0; | 717 RenderBlockFlow* pre = 0; |
| 718 RenderBlockFlow* post = 0; | 718 RenderBlockFlow* post = 0; |
| 719 RenderBlock* block = this; // Eventually block will not just be |this|, but
will also be a block nested inside |this|. Assign to a variable | 719 RenderBlock* block = this; // Eventually block will not just be |this|, but
will also be a block nested inside |this|. Assign to a variable |
| 720 // so that we don't have to patch all of the rest
of the code later on. | 720 // so that we don't have to patch all of the rest
of the code later on. |
| 721 | 721 |
| 722 // Delete the block's line boxes before we do the split. | 722 // Delete the block's line boxes before we do the split. |
| (...skipping 27 matching lines...) Expand all Loading... |
| 750 // We already know the newBlockBox isn't going to contain inline kids, so av
oid wasting | 750 // We already know the newBlockBox isn't going to contain inline kids, so av
oid wasting |
| 751 // time in makeChildrenNonInline by just setting this explicitly up front. | 751 // time in makeChildrenNonInline by just setting this explicitly up front. |
| 752 newBlockBox->setChildrenInline(false); | 752 newBlockBox->setChildrenInline(false); |
| 753 | 753 |
| 754 newBlockBox->addChild(newChild); | 754 newBlockBox->addChild(newChild); |
| 755 | 755 |
| 756 // Always just do a full layout in order to ensure that line boxes (especial
ly wrappers for images) | 756 // Always just do a full layout in order to ensure that line boxes (especial
ly wrappers for images) |
| 757 // get deleted properly. Because objects moved from the pre block into the
post block, we want to | 757 // get deleted properly. Because objects moved from the pre block into the
post block, we want to |
| 758 // make new line boxes instead of leaving the old line boxes around. | 758 // make new line boxes instead of leaving the old line boxes around. |
| 759 if (pre) | 759 if (pre) |
| 760 pre->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint(); | 760 pre->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
| 761 block->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint(); | 761 block->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
| 762 if (post) | 762 if (post) |
| 763 post->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint(); | 763 post->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
| 764 } | 764 } |
| 765 | 765 |
| 766 RenderBlockFlow* RenderBlock::columnsBlockForSpanningElement(RenderObject* newCh
ild) | 766 RenderBlockFlow* RenderBlock::columnsBlockForSpanningElement(RenderObject* newCh
ild) |
| 767 { | 767 { |
| 768 // FIXME: This function is the gateway for the addition of column-span suppo
rt. It will | 768 // FIXME: This function is the gateway for the addition of column-span suppo
rt. It will |
| 769 // be added to in three stages: | 769 // be added to in three stages: |
| 770 // (1) Immediate children of a multi-column block can span. | 770 // (1) Immediate children of a multi-column block can span. |
| 771 // (2) Nested block-level children with only block-level ancestors between t
hem and the multi-column block can span. | 771 // (2) Nested block-level children with only block-level ancestors between t
hem and the multi-column block can span. |
| 772 // (3) Nested children with block or inline ancestors between them and the m
ulti-column block can span (this is when we | 772 // (3) Nested children with block or inline ancestors between them and the m
ulti-column block can span (this is when we |
| 773 // cross the streams and have to cope with both types of continuations mixed
together). | 773 // cross the streams and have to cope with both types of continuations mixed
together). |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1109 collapseAnonymousBlockChild(this, toRenderBlock(blocksToRemove[i])); | 1109 collapseAnonymousBlockChild(this, toRenderBlock(blocksToRemove[i])); |
| 1110 } | 1110 } |
| 1111 | 1111 |
| 1112 void RenderBlock::collapseAnonymousBlockChild(RenderBlock* parent, RenderBlock*
child) | 1112 void RenderBlock::collapseAnonymousBlockChild(RenderBlock* parent, RenderBlock*
child) |
| 1113 { | 1113 { |
| 1114 // It's possible that this block's destruction may have been triggered by th
e | 1114 // It's possible that this block's destruction may have been triggered by th
e |
| 1115 // child's removal. Just bail if the anonymous child block is already being | 1115 // child's removal. Just bail if the anonymous child block is already being |
| 1116 // destroyed. See crbug.com/282088 | 1116 // destroyed. See crbug.com/282088 |
| 1117 if (child->beingDestroyed()) | 1117 if (child->beingDestroyed()) |
| 1118 return; | 1118 return; |
| 1119 parent->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint(); | 1119 parent->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
| 1120 parent->setChildrenInline(child->childrenInline()); | 1120 parent->setChildrenInline(child->childrenInline()); |
| 1121 RenderObject* nextSibling = child->nextSibling(); | 1121 RenderObject* nextSibling = child->nextSibling(); |
| 1122 | 1122 |
| 1123 RenderFlowThread* childFlowThread = child->flowThreadContainingBlock(); | 1123 RenderFlowThread* childFlowThread = child->flowThreadContainingBlock(); |
| 1124 CurrentRenderFlowThreadMaintainer flowThreadMaintainer(childFlowThread); | 1124 CurrentRenderFlowThreadMaintainer flowThreadMaintainer(childFlowThread); |
| 1125 | 1125 |
| 1126 parent->children()->removeChildNode(parent, child, child->hasLayer()); | 1126 parent->children()->removeChildNode(parent, child, child->hasLayer()); |
| 1127 child->moveAllChildrenTo(parent, nextSibling, child->hasLayer()); | 1127 child->moveAllChildrenTo(parent, nextSibling, child->hasLayer()); |
| 1128 // Explicitly delete the child's line box tree, or the special anonymous | 1128 // Explicitly delete the child's line box tree, or the special anonymous |
| 1129 // block handling in willBeDestroyed will cause problems. | 1129 // block handling in willBeDestroyed will cause problems. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1143 // This protects against column split flows when anonymous blocks are gettin
g merged. | 1143 // This protects against column split flows when anonymous blocks are gettin
g merged. |
| 1144 TemporaryChange<bool> columnFlowSplitEnabled(gColumnFlowSplitEnabled, false)
; | 1144 TemporaryChange<bool> columnFlowSplitEnabled(gColumnFlowSplitEnabled, false)
; |
| 1145 | 1145 |
| 1146 // If this child is a block, and if our previous and next siblings are | 1146 // If this child is a block, and if our previous and next siblings are |
| 1147 // both anonymous blocks with inline content, then we can go ahead and | 1147 // both anonymous blocks with inline content, then we can go ahead and |
| 1148 // fold the inline content back together. | 1148 // fold the inline content back together. |
| 1149 RenderObject* prev = oldChild->previousSibling(); | 1149 RenderObject* prev = oldChild->previousSibling(); |
| 1150 RenderObject* next = oldChild->nextSibling(); | 1150 RenderObject* next = oldChild->nextSibling(); |
| 1151 bool canMergeAnonymousBlocks = canMergeContiguousAnonymousBlocks(oldChild, p
rev, next); | 1151 bool canMergeAnonymousBlocks = canMergeContiguousAnonymousBlocks(oldChild, p
rev, next); |
| 1152 if (canMergeAnonymousBlocks && prev && next) { | 1152 if (canMergeAnonymousBlocks && prev && next) { |
| 1153 prev->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint(); | 1153 prev->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
| 1154 RenderBlockFlow* nextBlock = toRenderBlockFlow(next); | 1154 RenderBlockFlow* nextBlock = toRenderBlockFlow(next); |
| 1155 RenderBlockFlow* prevBlock = toRenderBlockFlow(prev); | 1155 RenderBlockFlow* prevBlock = toRenderBlockFlow(prev); |
| 1156 | 1156 |
| 1157 if (prev->childrenInline() != next->childrenInline()) { | 1157 if (prev->childrenInline() != next->childrenInline()) { |
| 1158 RenderBlock* inlineChildrenBlock = prev->childrenInline() ? prevBloc
k : nextBlock; | 1158 RenderBlock* inlineChildrenBlock = prev->childrenInline() ? prevBloc
k : nextBlock; |
| 1159 RenderBlock* blockChildrenBlock = prev->childrenInline() ? nextBlock
: prevBlock; | 1159 RenderBlock* blockChildrenBlock = prev->childrenInline() ? nextBlock
: prevBlock; |
| 1160 | 1160 |
| 1161 // Place the inline children block inside of the block children bloc
k instead of deleting it. | 1161 // Place the inline children block inside of the block children bloc
k instead of deleting it. |
| 1162 // In order to reuse it, we have to reset it to just be a generic an
onymous block. Make sure | 1162 // In order to reuse it, we have to reset it to just be a generic an
onymous block. Make sure |
| 1163 // to clear out inherited column properties by just making a new sty
le, and to also clear the | 1163 // to clear out inherited column properties by just making a new sty
le, and to also clear the |
| 1164 // column span flag if it is set. | 1164 // column span flag if it is set. |
| 1165 ASSERT(!inlineChildrenBlock->continuation()); | 1165 ASSERT(!inlineChildrenBlock->continuation()); |
| 1166 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWith
Display(style(), BLOCK); | 1166 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWith
Display(style(), BLOCK); |
| 1167 // Cache this value as it might get changed in setStyle() call. | 1167 // Cache this value as it might get changed in setStyle() call. |
| 1168 bool inlineChildrenBlockHasLayer = inlineChildrenBlock->hasLayer(); | 1168 bool inlineChildrenBlockHasLayer = inlineChildrenBlock->hasLayer(); |
| 1169 inlineChildrenBlock->setStyle(newStyle); | 1169 inlineChildrenBlock->setStyle(newStyle); |
| 1170 children()->removeChildNode(this, inlineChildrenBlock, inlineChildre
nBlockHasLayer); | 1170 children()->removeChildNode(this, inlineChildrenBlock, inlineChildre
nBlockHasLayer); |
| 1171 | 1171 |
| 1172 // Now just put the inlineChildrenBlock inside the blockChildrenBloc
k. | 1172 // Now just put the inlineChildrenBlock inside the blockChildrenBloc
k. |
| 1173 blockChildrenBlock->children()->insertChildNode(blockChildrenBlock,
inlineChildrenBlock, prev == inlineChildrenBlock ? blockChildrenBlock->firstChil
d() : 0, | 1173 blockChildrenBlock->children()->insertChildNode(blockChildrenBlock,
inlineChildrenBlock, prev == inlineChildrenBlock ? blockChildrenBlock->firstChil
d() : 0, |
| 1174 inlineChildrenBlockH
asLayer || blockChildrenBlock->hasLayer()); | 1174 inlineChildrenBlockH
asLayer || blockChildrenBlock->hasLayer()); |
| 1175 next->setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint(); | 1175 next->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
| 1176 | 1176 |
| 1177 // inlineChildrenBlock got reparented to blockChildrenBlock, so it i
s no longer a child | 1177 // inlineChildrenBlock got reparented to blockChildrenBlock, so it i
s no longer a child |
| 1178 // of "this". we null out prev or next so that is not used later in
the function. | 1178 // of "this". we null out prev or next so that is not used later in
the function. |
| 1179 if (inlineChildrenBlock == prevBlock) | 1179 if (inlineChildrenBlock == prevBlock) |
| 1180 prev = 0; | 1180 prev = 0; |
| 1181 else | 1181 else |
| 1182 next = 0; | 1182 next = 0; |
| 1183 } else { | 1183 } else { |
| 1184 // Take all the children out of the |next| block and put them in | 1184 // Take all the children out of the |next| block and put them in |
| 1185 // the |prev| block. | 1185 // the |prev| block. |
| (...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1710 if (isHorizontalWritingMode() == r->isHorizontalWritingMode()) | 1710 if (isHorizontalWritingMode() == r->isHorizontalWritingMode()) |
| 1711 r->updateLogicalHeight(); | 1711 r->updateLogicalHeight(); |
| 1712 else | 1712 else |
| 1713 r->updateLogicalWidth(); | 1713 r->updateLogicalWidth(); |
| 1714 oldLogicalTop = logicalTopForChild(r); | 1714 oldLogicalTop = logicalTopForChild(r); |
| 1715 } | 1715 } |
| 1716 | 1716 |
| 1717 // FIXME: We should be able to do a r->setNeedsPositionedMovementLayout(
) here instead of a full layout. Need | 1717 // FIXME: We should be able to do a r->setNeedsPositionedMovementLayout(
) here instead of a full layout. Need |
| 1718 // to investigate why it does not trigger the correct invalidations in t
hat case. crbug.com/350756 | 1718 // to investigate why it does not trigger the correct invalidations in t
hat case. crbug.com/350756 |
| 1719 if (info == ForcedLayoutAfterContainingBlockMoved) | 1719 if (info == ForcedLayoutAfterContainingBlockMoved) |
| 1720 r->setNeedsLayoutAndFullRepaint(); | 1720 r->setNeedsLayoutAndFullPaintInvalidation(); |
| 1721 | 1721 |
| 1722 r->layoutIfNeeded(); | 1722 r->layoutIfNeeded(); |
| 1723 | 1723 |
| 1724 // Lay out again if our estimate was wrong. | 1724 // Lay out again if our estimate was wrong. |
| 1725 if (needsBlockDirectionLocationSetBeforeLayout && logicalTopForChild(r)
!= oldLogicalTop) | 1725 if (needsBlockDirectionLocationSetBeforeLayout && logicalTopForChild(r)
!= oldLogicalTop) |
| 1726 r->forceChildLayout(); | 1726 r->forceChildLayout(); |
| 1727 } | 1727 } |
| 1728 | 1728 |
| 1729 if (hasColumns()) | 1729 if (hasColumns()) |
| 1730 view()->layoutState()->setColumnInfo(columnInfo()); // FIXME: Kind of gr
oss. We just put this back into the layout state so that pop() will work. | 1730 view()->layoutState()->setColumnInfo(columnInfo()); // FIXME: Kind of gr
oss. We just put this back into the layout state so that pop() will work. |
| (...skipping 2732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4463 // https://bugs.webkit.org/show_bug.cgi?id=46781 | 4463 // https://bugs.webkit.org/show_bug.cgi?id=46781 |
| 4464 FloatRect localRect(0, -collapsedMarginBefore().toFloat(), | 4464 FloatRect localRect(0, -collapsedMarginBefore().toFloat(), |
| 4465 width().toFloat(), (height() + collapsedMarginBefore() + collapsedMa
rginAfter()).toFloat()); | 4465 width().toFloat(), (height() + collapsedMarginBefore() + collapsedMa
rginAfter()).toFloat()); |
| 4466 quads.append(localToAbsoluteQuad(localRect, 0 /* mode */, wasFixed)); | 4466 quads.append(localToAbsoluteQuad(localRect, 0 /* mode */, wasFixed)); |
| 4467 continuation()->absoluteQuads(quads, wasFixed); | 4467 continuation()->absoluteQuads(quads, wasFixed); |
| 4468 } else { | 4468 } else { |
| 4469 quads.append(RenderBox::localToAbsoluteQuad(FloatRect(0, 0, width().toFl
oat(), height().toFloat()), 0 /* mode */, wasFixed)); | 4469 quads.append(RenderBox::localToAbsoluteQuad(FloatRect(0, 0, width().toFl
oat(), height().toFloat()), 0 /* mode */, wasFixed)); |
| 4470 } | 4470 } |
| 4471 } | 4471 } |
| 4472 | 4472 |
| 4473 LayoutRect RenderBlock::rectWithOutlineForRepaint(const RenderLayerModelObject*
repaintContainer, LayoutUnit outlineWidth) const | 4473 LayoutRect RenderBlock::rectWithOutlineForPaintInvalidation(const RenderLayerMod
elObject* paintInvalidationContainer, LayoutUnit outlineWidth) const |
| 4474 { | 4474 { |
| 4475 LayoutRect r(RenderBox::rectWithOutlineForRepaint(repaintContainer, outlineW
idth)); | 4475 LayoutRect r(RenderBox::rectWithOutlineForPaintInvalidation(paintInvalidatio
nContainer, outlineWidth)); |
| 4476 if (isAnonymousBlockContinuation()) | 4476 if (isAnonymousBlockContinuation()) |
| 4477 r.inflateY(collapsedMarginBefore()); // FIXME: This is wrong for block-f
lows that are horizontal. | 4477 r.inflateY(collapsedMarginBefore()); // FIXME: This is wrong for block-f
lows that are horizontal. |
| 4478 return r; | 4478 return r; |
| 4479 } | 4479 } |
| 4480 | 4480 |
| 4481 RenderObject* RenderBlock::hoverAncestor() const | 4481 RenderObject* RenderBlock::hoverAncestor() const |
| 4482 { | 4482 { |
| 4483 return isAnonymousBlockContinuation() ? continuation() : RenderBox::hoverAnc
estor(); | 4483 return isAnonymousBlockContinuation() ? continuation() : RenderBox::hoverAnc
estor(); |
| 4484 } | 4484 } |
| 4485 | 4485 |
| 4486 void RenderBlock::updateDragState(bool dragOn) | 4486 void RenderBlock::updateDragState(bool dragOn) |
| 4487 { | 4487 { |
| 4488 RenderBox::updateDragState(dragOn); | 4488 RenderBox::updateDragState(dragOn); |
| 4489 if (continuation()) | 4489 if (continuation()) |
| 4490 continuation()->updateDragState(dragOn); | 4490 continuation()->updateDragState(dragOn); |
| 4491 } | 4491 } |
| 4492 | 4492 |
| 4493 RenderStyle* RenderBlock::outlineStyleForRepaint() const | 4493 RenderStyle* RenderBlock::outlineStyleForPaintInvalidation() const |
| 4494 { | 4494 { |
| 4495 return isAnonymousBlockContinuation() ? continuation()->style() : style(); | 4495 return isAnonymousBlockContinuation() ? continuation()->style() : style(); |
| 4496 } | 4496 } |
| 4497 | 4497 |
| 4498 void RenderBlock::childBecameNonInline(RenderObject*) | 4498 void RenderBlock::childBecameNonInline(RenderObject*) |
| 4499 { | 4499 { |
| 4500 makeChildrenNonInline(); | 4500 makeChildrenNonInline(); |
| 4501 if (isAnonymousBlock() && parent() && parent()->isRenderBlock()) | 4501 if (isAnonymousBlock() && parent() && parent()->isRenderBlock()) |
| 4502 toRenderBlock(parent())->removeLeftoverAnonymousBlock(this); | 4502 toRenderBlock(parent())->removeLeftoverAnonymousBlock(this); |
| 4503 // |this| may be dead here | 4503 // |this| may be dead here |
| (...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5047 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render
Object* obj) const | 5047 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render
Object* obj) const |
| 5048 { | 5048 { |
| 5049 showRenderObject(); | 5049 showRenderObject(); |
| 5050 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) | 5050 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) |
| 5051 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); | 5051 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); |
| 5052 } | 5052 } |
| 5053 | 5053 |
| 5054 #endif | 5054 #endif |
| 5055 | 5055 |
| 5056 } // namespace WebCore | 5056 } // namespace WebCore |
| OLD | NEW |