Index: Source/core/layout/line/RootInlineBox.cpp |
diff --git a/Source/core/layout/line/RootInlineBox.cpp b/Source/core/layout/line/RootInlineBox.cpp |
index dbaeaf17713f209754fa86bfef722cff572c8c82..04a0f12c05fe408fd33a969e2e861c4c9d4ec963 100644 |
--- a/Source/core/layout/line/RootInlineBox.cpp |
+++ b/Source/core/layout/line/RootInlineBox.cpp |
@@ -116,7 +116,7 @@ bool RootInlineBox::lineCanAccommodateEllipsis(bool ltr, int blockEdge, int line |
FloatWillBeLayoutUnit RootInlineBox::placeEllipsis(const AtomicString& ellipsisStr, bool ltr, FloatWillBeLayoutUnit blockLeftEdge, FloatWillBeLayoutUnit blockRightEdge, FloatWillBeLayoutUnit ellipsisWidth, InlineBox* markupBox) |
{ |
// Create an ellipsis box. |
- EllipsisBox* ellipsisBox = new EllipsisBox(renderer(), ellipsisStr, this, |
+ EllipsisBox* ellipsisBox = new EllipsisBox(layoutObject(), ellipsisStr, this, |
ellipsisWidth - (markupBox ? markupBox->logicalWidth().toFloat() : 0), logicalHeight().toFloat(), |
x(), y(), !prevRootBox(), isHorizontal(), markupBox); |
@@ -160,7 +160,7 @@ bool RootInlineBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& re |
{ |
if (hasEllipsisBox() && visibleToHitTestRequest(request)) { |
if (ellipsisBox()->nodeAtPoint(request, result, locationInContainer, accumulatedOffset, lineTop, lineBottom)) { |
- renderer().updateHitTestResult(result, locationInContainer.point() - toLayoutSize(accumulatedOffset)); |
+ layoutObject().updateHitTestResult(result, locationInContainer.point() - toLayoutSize(accumulatedOffset)); |
return true; |
} |
} |
@@ -182,10 +182,10 @@ void RootInlineBox::adjustPosition(FloatWillBeLayoutUnit dx, FloatWillBeLayoutUn |
void RootInlineBox::childRemoved(InlineBox* box) |
{ |
- if (&box->renderer() == m_lineBreakObj) |
+ if (&box->layoutObject() == m_lineBreakObj) |
setLineBreakInfo(0, 0, BidiStatus()); |
- for (RootInlineBox* prev = prevRootBox(); prev && prev->lineBreakObj() == &box->renderer(); prev = prev->prevRootBox()) { |
+ for (RootInlineBox* prev = prevRootBox(); prev && prev->lineBreakObj() == &box->layoutObject(); prev = prev->prevRootBox()) { |
prev->setLineBreakInfo(0, 0, BidiStatus()); |
prev->markDirty(); |
} |
@@ -205,7 +205,7 @@ LayoutUnit RootInlineBox::alignBoxesInBlockDirection(LayoutUnit heightOfBlock, G |
bool setMaxDescent = false; |
// Figure out if we're in no-quirks mode. |
- bool noQuirksMode = renderer().document().inNoQuirksMode(); |
+ bool noQuirksMode = layoutObject().document().inNoQuirksMode(); |
m_baselineType = requiresIdeographicBaseline(textBoxDataMap) ? IdeographicBaseline : AlphabeticBaseline; |
@@ -253,7 +253,7 @@ LayoutUnit RootInlineBox::beforeAnnotationsAdjustment() const |
{ |
LayoutUnit result = 0; |
- if (!renderer().style()->isFlippedLinesWritingMode()) { |
+ if (!layoutObject().style()->isFlippedLinesWritingMode()) { |
// Annotations under the previous line may push us down. |
if (prevRootBox() && prevRootBox()->hasAnnotationsAfter()) |
result = prevRootBox()->computeUnderAnnotationAdjustment(lineTop()); |
@@ -293,11 +293,11 @@ GapRects RootInlineBox::lineSelectionGap(const LayoutBlock* rootBlock, const Lay |
InlineBox* lastBox = lastSelectedBox(); |
if (leftGap) { |
result.uniteLeft(block().logicalLeftSelectionGap(rootBlock, rootBlockPhysicalPosition, offsetFromRootBlock, |
- &firstBox->parent()->renderer(), firstBox->logicalLeft(), selTop, selHeight, paintInfo)); |
+ &firstBox->parent()->layoutObject(), firstBox->logicalLeft(), selTop, selHeight, paintInfo)); |
} |
if (rightGap) { |
result.uniteRight(block().logicalRightSelectionGap(rootBlock, rootBlockPhysicalPosition, offsetFromRootBlock, |
- &lastBox->parent()->renderer(), lastBox->logicalRight(), selTop, selHeight, paintInfo)); |
+ &lastBox->parent()->layoutObject(), lastBox->logicalRight(), selTop, selHeight, paintInfo)); |
} |
// When dealing with bidi text, a non-contiguous selection region is possible. |
@@ -314,11 +314,11 @@ GapRects RootInlineBox::lineSelectionGap(const LayoutBlock* rootBlock, const Lay |
for (InlineBox* box = firstBox->nextLeafChild(); box; box = box->nextLeafChild()) { |
if (box->selectionState() != LayoutObject::SelectionNone) { |
LayoutRect logicalRect(lastLogicalLeft, selTop, box->logicalLeft() - lastLogicalLeft, selHeight); |
- logicalRect.move(renderer().isHorizontalWritingMode() ? offsetFromRootBlock : LayoutSize(offsetFromRootBlock.height(), offsetFromRootBlock.width())); |
+ logicalRect.move(layoutObject().isHorizontalWritingMode() ? offsetFromRootBlock : LayoutSize(offsetFromRootBlock.height(), offsetFromRootBlock.width())); |
LayoutRect gapRect = rootBlock->logicalRectToPhysicalRect(rootBlockPhysicalPosition, logicalRect); |
if (isPreviousBoxSelected && gapRect.width() > 0 && gapRect.height() > 0) { |
- if (paintInfo && box->parent()->renderer().style()->visibility() == VISIBLE) |
- paintInfo->context->fillRect(gapRect, box->parent()->renderer().selectionBackgroundColor()); |
+ if (paintInfo && box->parent()->layoutObject().style()->visibility() == VISIBLE) |
+ paintInfo->context->fillRect(gapRect, box->parent()->layoutObject().selectionBackgroundColor()); |
// VisibleSelection may be non-contiguous, see comment above. |
result.uniteCenter(gapRect); |
} |
@@ -380,9 +380,9 @@ LayoutUnit RootInlineBox::selectionTop() const |
LayoutUnit selectionTop = m_lineTop; |
if (m_hasAnnotationsBefore) |
- selectionTop -= !renderer().style()->isFlippedLinesWritingMode() ? computeOverAnnotationAdjustment(m_lineTop) : computeUnderAnnotationAdjustment(m_lineTop); |
+ selectionTop -= !layoutObject().style()->isFlippedLinesWritingMode() ? computeOverAnnotationAdjustment(m_lineTop) : computeUnderAnnotationAdjustment(m_lineTop); |
- if (renderer().style()->isFlippedLinesWritingMode() || !prevRootBox()) |
+ if (layoutObject().style()->isFlippedLinesWritingMode() || !prevRootBox()) |
return selectionTop; |
LayoutUnit prevBottom = prevRootBox()->selectionBottom(); |
@@ -431,9 +431,9 @@ LayoutUnit RootInlineBox::selectionBottom() const |
LayoutUnit selectionBottom = m_selectionBottom; |
if (m_hasAnnotationsAfter) |
- selectionBottom += !renderer().style()->isFlippedLinesWritingMode() ? computeUnderAnnotationAdjustment(m_lineBottom) : computeOverAnnotationAdjustment(m_lineBottom); |
+ selectionBottom += !layoutObject().style()->isFlippedLinesWritingMode() ? computeUnderAnnotationAdjustment(m_lineBottom) : computeOverAnnotationAdjustment(m_lineBottom); |
- if (!renderer().style()->isFlippedLinesWritingMode() || !nextRootBox()) |
+ if (!layoutObject().style()->isFlippedLinesWritingMode() || !nextRootBox()) |
return selectionBottom; |
LayoutUnit nextTop = nextRootBox()->selectionTop(); |
@@ -459,12 +459,12 @@ LayoutUnit RootInlineBox::blockDirectionPointInLine() const |
LayoutBlockFlow& RootInlineBox::block() const |
{ |
- return toLayoutBlockFlow(renderer()); |
+ return toLayoutBlockFlow(layoutObject()); |
} |
static bool isEditableLeaf(InlineBox* leaf) |
{ |
- return leaf && leaf->renderer().node() && leaf->renderer().node()->hasEditableStyle(); |
+ return leaf && leaf->layoutObject().node() && leaf->layoutObject().node()->hasEditableStyle(); |
} |
InlineBox* RootInlineBox::closestLeafChildForPoint(const LayoutPoint& pointInContents, bool onlyEditableLeaves) |
@@ -488,13 +488,13 @@ InlineBox* RootInlineBox::closestLeafChildForLogicalLeftPosition(LayoutUnit left |
return firstLeaf; |
// Avoid returning a list marker when possible. |
- if (leftPosition <= firstLeaf->logicalLeft() && !firstLeaf->renderer().isListMarker() && (!onlyEditableLeaves || isEditableLeaf(firstLeaf))) { |
+ if (leftPosition <= firstLeaf->logicalLeft() && !firstLeaf->layoutObject().isListMarker() && (!onlyEditableLeaves || isEditableLeaf(firstLeaf))) { |
// The leftPosition coordinate is less or equal to left edge of the firstLeaf. |
// Return it. |
return firstLeaf; |
} |
- if (leftPosition >= lastLeaf->logicalRight() && !lastLeaf->renderer().isListMarker() && (!onlyEditableLeaves || isEditableLeaf(lastLeaf))) { |
+ if (leftPosition >= lastLeaf->logicalRight() && !lastLeaf->layoutObject().isListMarker() && (!onlyEditableLeaves || isEditableLeaf(lastLeaf))) { |
// The leftPosition coordinate is greater or equal to right edge of the lastLeaf. |
// Return it. |
return lastLeaf; |
@@ -502,7 +502,7 @@ InlineBox* RootInlineBox::closestLeafChildForLogicalLeftPosition(LayoutUnit left |
InlineBox* closestLeaf = 0; |
for (InlineBox* leaf = firstLeaf; leaf; leaf = leaf->nextLeafChildIgnoringLineBreak()) { |
- if (!leaf->renderer().isListMarker() && (!onlyEditableLeaves || isEditableLeaf(leaf))) { |
+ if (!leaf->layoutObject().isListMarker() && (!onlyEditableLeaves || isEditableLeaf(leaf))) { |
closestLeaf = leaf; |
if (leftPosition < leaf->logicalRight()) { |
// The x coordinate is less than the right edge of the box. |
@@ -598,8 +598,8 @@ void RootInlineBox::ascentAndDescentForBox(InlineBox* box, GlyphOverflowAndFallb |
// Replaced boxes will return 0 for the line-height if line-box-contain says they are |
// not to be included. |
- if (box->renderer().isReplaced()) { |
- if (renderer().style(isFirstLineStyle())->lineBoxContain() & LineBoxContainReplaced) { |
+ if (box->layoutObject().isReplaced()) { |
+ if (layoutObject().style(isFirstLineStyle())->lineBoxContain() & LineBoxContainReplaced) { |
ascent = box->baselinePosition(baselineType()); |
descent = box->lineHeight() - ascent; |
@@ -624,8 +624,8 @@ void RootInlineBox::ascentAndDescentForBox(InlineBox* box, GlyphOverflowAndFallb |
bool setUsedFont = false; |
bool setUsedFontWithLeading = false; |
- if (usedFonts && !usedFonts->isEmpty() && (includeFont || (box->renderer().style(isFirstLineStyle())->lineHeight().isNegative() && includeLeading))) { |
- usedFonts->append(box->renderer().style(isFirstLineStyle())->font().primaryFont()); |
+ if (usedFonts && !usedFonts->isEmpty() && (includeFont || (box->layoutObject().style(isFirstLineStyle())->lineHeight().isNegative() && includeLeading))) { |
+ usedFonts->append(box->layoutObject().style(isFirstLineStyle())->font().primaryFont()); |
for (size_t i = 0; i < usedFonts->size(); ++i) { |
const FontMetrics& fontMetrics = usedFonts->at(i)->fontMetrics(); |
int usedFontAscent = fontMetrics.ascent(baselineType()); |
@@ -663,8 +663,8 @@ void RootInlineBox::ascentAndDescentForBox(InlineBox* box, GlyphOverflowAndFallb |
} |
if (includeFontForBox(box) && !setUsedFont) { |
- int fontAscent = box->renderer().style(isFirstLineStyle())->fontMetrics().ascent(baselineType()); |
- int fontDescent = box->renderer().style(isFirstLineStyle())->fontMetrics().descent(baselineType()); |
+ int fontAscent = box->layoutObject().style(isFirstLineStyle())->fontMetrics().ascent(baselineType()); |
+ int fontDescent = box->layoutObject().style(isFirstLineStyle())->fontMetrics().descent(baselineType()); |
setAscentAndDescent(ascent, descent, fontAscent, fontDescent, ascentDescentSet); |
affectsAscent = fontAscent - box->logicalTop() > 0; |
affectsDescent = fontDescent + box->logicalTop() > 0; |
@@ -677,9 +677,9 @@ void RootInlineBox::ascentAndDescentForBox(InlineBox* box, GlyphOverflowAndFallb |
} |
if (includeMarginForBox(box)) { |
- LayoutUnit ascentWithMargin = box->renderer().style(isFirstLineStyle())->fontMetrics().ascent(baselineType()); |
- LayoutUnit descentWithMargin = box->renderer().style(isFirstLineStyle())->fontMetrics().descent(baselineType()); |
- if (box->parent() && !box->renderer().isText()) { |
+ LayoutUnit ascentWithMargin = box->layoutObject().style(isFirstLineStyle())->fontMetrics().ascent(baselineType()); |
+ LayoutUnit descentWithMargin = box->layoutObject().style(isFirstLineStyle())->fontMetrics().descent(baselineType()); |
+ if (box->parent() && !box->layoutObject().isText()) { |
ascentWithMargin += box->boxModelObject()->borderBefore() + box->boxModelObject()->paddingBefore() + box->boxModelObject()->marginBefore(); |
descentWithMargin += box->boxModelObject()->borderAfter() + box->boxModelObject()->paddingAfter() + box->boxModelObject()->marginAfter(); |
} |
@@ -693,7 +693,7 @@ void RootInlineBox::ascentAndDescentForBox(InlineBox* box, GlyphOverflowAndFallb |
LayoutUnit RootInlineBox::verticalPositionForBox(InlineBox* box, VerticalPositionCache& verticalPositionCache) |
{ |
- if (box->renderer().isText()) |
+ if (box->layoutObject().isText()) |
return box->parent()->logicalTop(); |
LayoutBoxModelObject* renderer = box->boxModelObject(); |
@@ -765,45 +765,45 @@ LayoutUnit RootInlineBox::verticalPositionForBox(InlineBox* box, VerticalPositio |
bool RootInlineBox::includeLeadingForBox(InlineBox* box) const |
{ |
- if (box->renderer().isReplaced() || (box->renderer().isText() && !box->isText())) |
+ if (box->layoutObject().isReplaced() || (box->layoutObject().isText() && !box->isText())) |
return false; |
- LineBoxContain lineBoxContain = renderer().style()->lineBoxContain(); |
+ LineBoxContain lineBoxContain = layoutObject().style()->lineBoxContain(); |
return (lineBoxContain & LineBoxContainInline) || (box == this && (lineBoxContain & LineBoxContainBlock)); |
} |
bool RootInlineBox::includeFontForBox(InlineBox* box) const |
{ |
- if (box->renderer().isReplaced() || (box->renderer().isText() && !box->isText())) |
+ if (box->layoutObject().isReplaced() || (box->layoutObject().isText() && !box->isText())) |
return false; |
if (!box->isText() && box->isInlineFlowBox() && !toInlineFlowBox(box)->hasTextChildren()) |
return false; |
// For now map "glyphs" to "font" in vertical text mode until the bounds returned by glyphs aren't garbage. |
- LineBoxContain lineBoxContain = renderer().style()->lineBoxContain(); |
+ LineBoxContain lineBoxContain = layoutObject().style()->lineBoxContain(); |
return (lineBoxContain & LineBoxContainFont) || (!isHorizontal() && (lineBoxContain & LineBoxContainGlyphs)); |
} |
bool RootInlineBox::includeGlyphsForBox(InlineBox* box) const |
{ |
- if (box->renderer().isReplaced() || (box->renderer().isText() && !box->isText())) |
+ if (box->layoutObject().isReplaced() || (box->layoutObject().isText() && !box->isText())) |
return false; |
if (!box->isText() && box->isInlineFlowBox() && !toInlineFlowBox(box)->hasTextChildren()) |
return false; |
// FIXME: We can't fit to glyphs yet for vertical text, since the bounds returned are garbage. |
- LineBoxContain lineBoxContain = renderer().style()->lineBoxContain(); |
+ LineBoxContain lineBoxContain = layoutObject().style()->lineBoxContain(); |
return isHorizontal() && (lineBoxContain & LineBoxContainGlyphs); |
} |
bool RootInlineBox::includeMarginForBox(InlineBox* box) const |
{ |
- if (box->renderer().isReplaced() || (box->renderer().isText() && !box->isText())) |
+ if (box->layoutObject().isReplaced() || (box->layoutObject().isText() && !box->isText())) |
return false; |
- LineBoxContain lineBoxContain = renderer().style()->lineBoxContain(); |
+ LineBoxContain lineBoxContain = layoutObject().style()->lineBoxContain(); |
return lineBoxContain & LineBoxContainInlineBox; |
} |
@@ -811,13 +811,13 @@ bool RootInlineBox::includeMarginForBox(InlineBox* box) const |
bool RootInlineBox::fitsToGlyphs() const |
{ |
// FIXME: We can't fit to glyphs yet for vertical text, since the bounds returned are garbage. |
- LineBoxContain lineBoxContain = renderer().style()->lineBoxContain(); |
+ LineBoxContain lineBoxContain = layoutObject().style()->lineBoxContain(); |
return isHorizontal() && (lineBoxContain & LineBoxContainGlyphs); |
} |
bool RootInlineBox::includesRootLineBoxFontOrLeading() const |
{ |
- LineBoxContain lineBoxContain = renderer().style()->lineBoxContain(); |
+ LineBoxContain lineBoxContain = layoutObject().style()->lineBoxContain(); |
return (lineBoxContain & LineBoxContainBlock) || (lineBoxContain & LineBoxContainInline) || (lineBoxContain & LineBoxContainFont); |
} |
@@ -826,9 +826,9 @@ Node* RootInlineBox::getLogicalStartBoxWithNode(InlineBox*& startBox) const |
Vector<InlineBox*> leafBoxesInLogicalOrder; |
collectLeafBoxesInLogicalOrder(leafBoxesInLogicalOrder); |
for (size_t i = 0; i < leafBoxesInLogicalOrder.size(); ++i) { |
- if (leafBoxesInLogicalOrder[i]->renderer().nonPseudoNode()) { |
+ if (leafBoxesInLogicalOrder[i]->layoutObject().nonPseudoNode()) { |
startBox = leafBoxesInLogicalOrder[i]; |
- return startBox->renderer().nonPseudoNode(); |
+ return startBox->layoutObject().nonPseudoNode(); |
} |
} |
startBox = 0; |
@@ -840,9 +840,9 @@ Node* RootInlineBox::getLogicalEndBoxWithNode(InlineBox*& endBox) const |
Vector<InlineBox*> leafBoxesInLogicalOrder; |
collectLeafBoxesInLogicalOrder(leafBoxesInLogicalOrder); |
for (size_t i = leafBoxesInLogicalOrder.size(); i > 0; --i) { |
- if (leafBoxesInLogicalOrder[i - 1]->renderer().nonPseudoNode()) { |
+ if (leafBoxesInLogicalOrder[i - 1]->layoutObject().nonPseudoNode()) { |
endBox = leafBoxesInLogicalOrder[i - 1]; |
- return endBox->renderer().nonPseudoNode(); |
+ return endBox->layoutObject().nonPseudoNode(); |
} |
} |
endBox = 0; |