Index: Source/core/layout/line/InlineFlowBox.cpp |
diff --git a/Source/core/layout/line/InlineFlowBox.cpp b/Source/core/layout/line/InlineFlowBox.cpp |
index 214e1c4a80859c954287b7670dd832724a90d569..ab4a407cf21249dbaf6f7969f828c1a4a1ddb5f9 100644 |
--- a/Source/core/layout/line/InlineFlowBox.cpp |
+++ b/Source/core/layout/line/InlineFlowBox.cpp |
@@ -111,7 +111,7 @@ void InlineFlowBox::addToLine(InlineBox* child) |
child->setFirstLineStyleBit(isFirstLineStyle()); |
child->setIsHorizontal(isHorizontal()); |
if (child->isText()) { |
- if (child->renderer().parent() == renderer()) |
+ if (child->layoutObject().parent() == layoutObject()) |
m_hasTextChildren = true; |
setHasTextDescendantsOnAncestors(this); |
} else if (child->isInlineFlowBox()) { |
@@ -119,14 +119,14 @@ void InlineFlowBox::addToLine(InlineBox* child) |
setHasTextDescendantsOnAncestors(this); |
} |
- if (descendantsHaveSameLineHeightAndBaseline() && !child->renderer().isOutOfFlowPositioned()) { |
- const LayoutStyle& parentStyle = renderer().styleRef(isFirstLineStyle()); |
- const LayoutStyle& childStyle = child->renderer().styleRef(isFirstLineStyle()); |
+ if (descendantsHaveSameLineHeightAndBaseline() && !child->layoutObject().isOutOfFlowPositioned()) { |
+ const LayoutStyle& parentStyle = layoutObject().styleRef(isFirstLineStyle()); |
+ const LayoutStyle& childStyle = child->layoutObject().styleRef(isFirstLineStyle()); |
bool shouldClearDescendantsHaveSameLineHeightAndBaseline = false; |
- if (child->renderer().isReplaced()) { |
+ if (child->layoutObject().isReplaced()) { |
shouldClearDescendantsHaveSameLineHeightAndBaseline = true; |
} else if (child->isText()) { |
- if (child->renderer().isBR() || child->renderer().parent() != renderer()) { |
+ if (child->layoutObject().isBR() || child->layoutObject().parent() != layoutObject()) { |
if (!parentStyle.font().fontMetrics().hasIdenticalAscentDescentAndLineGap(childStyle.font().fontMetrics()) |
|| parentStyle.lineHeight() != childStyle.lineHeight() |
|| (parentStyle.verticalAlign() != BASELINE && !isRootInlineBox()) || childStyle.verticalAlign() != BASELINE) |
@@ -135,7 +135,7 @@ void InlineFlowBox::addToLine(InlineBox* child) |
if (childStyle.hasTextCombine() || childStyle.textEmphasisMark() != TextEmphasisMarkNone) |
shouldClearDescendantsHaveSameLineHeightAndBaseline = true; |
} else { |
- if (child->renderer().isBR()) { |
+ if (child->layoutObject().isBR()) { |
// FIXME: This is dumb. We only turn off because current layout test results expect the <br> to be 0-height on the baseline. |
// Other than making a zillion tests have to regenerate results, there's no reason to ditch the optimization here. |
shouldClearDescendantsHaveSameLineHeightAndBaseline = true; |
@@ -156,19 +156,19 @@ void InlineFlowBox::addToLine(InlineBox* child) |
clearDescendantsHaveSameLineHeightAndBaseline(); |
} |
- if (!child->renderer().isOutOfFlowPositioned()) { |
+ if (!child->layoutObject().isOutOfFlowPositioned()) { |
if (child->isText()) { |
- const LayoutStyle& childStyle = child->renderer().styleRef(isFirstLineStyle()); |
+ const LayoutStyle& childStyle = child->layoutObject().styleRef(isFirstLineStyle()); |
if (childStyle.letterSpacing() < 0 || childStyle.textShadow() || childStyle.textEmphasisMark() != TextEmphasisMarkNone || childStyle.textStrokeWidth()) |
child->clearKnownToHaveNoOverflow(); |
- } else if (child->renderer().isReplaced()) { |
- LayoutBox& box = toLayoutBox(child->renderer()); |
+ } else if (child->layoutObject().isReplaced()) { |
+ LayoutBox& box = toLayoutBox(child->layoutObject()); |
if (box.hasOverflowModel() || box.hasSelfPaintingLayer()) |
child->clearKnownToHaveNoOverflow(); |
- } else if (!child->renderer().isBR() && (child->renderer().style(isFirstLineStyle())->boxShadow() || child->boxModelObject()->hasSelfPaintingLayer() |
- || (child->renderer().isListMarker() && !toLayoutListMarker(child->renderer()).isInside()) |
- || child->renderer().style(isFirstLineStyle())->hasBorderImageOutsets() |
- || child->renderer().style(isFirstLineStyle())->hasOutline())) { |
+ } else if (!child->layoutObject().isBR() && (child->layoutObject().style(isFirstLineStyle())->boxShadow() || child->boxModelObject()->hasSelfPaintingLayer() |
+ || (child->layoutObject().isListMarker() && !toLayoutListMarker(child->layoutObject()).isInside()) |
+ || child->layoutObject().style(isFirstLineStyle())->hasBorderImageOutsets() |
+ || child->layoutObject().style(isFirstLineStyle())->hasOutline())) { |
child->clearKnownToHaveNoOverflow(); |
} |
@@ -266,7 +266,7 @@ void InlineFlowBox::adjustPosition(FloatWillBeLayoutUnit dx, FloatWillBeLayoutUn |
LineBoxList* InlineFlowBox::lineBoxes() const |
{ |
- return toLayoutInline(renderer()).lineBoxes(); |
+ return toLayoutInline(layoutObject()).lineBoxes(); |
} |
static inline bool isLastChildForRenderer(LayoutObject* ancestor, LayoutObject* child) |
@@ -312,13 +312,13 @@ void InlineFlowBox::determineSpacingForFlowBoxes(bool lastLine, bool isLogically |
// The root inline box never has borders/margins/padding. |
if (parent()) { |
- bool ltr = renderer().style()->isLeftToRightDirection(); |
+ bool ltr = layoutObject().style()->isLeftToRightDirection(); |
// Check to see if all initial lines are unconstructed. If so, then |
// we know the inline began on this line (unless we are a continuation). |
LineBoxList* lineBoxList = lineBoxes(); |
- if (!lineBoxList->firstLineBox()->isConstructed() && !renderer().isInlineElementContinuation()) { |
- if (renderer().style()->boxDecorationBreak() == DCLONE) |
+ if (!lineBoxList->firstLineBox()->isConstructed() && !layoutObject().isInlineElementContinuation()) { |
+ if (layoutObject().style()->boxDecorationBreak() == DCLONE) |
includeLeftEdge = includeRightEdge = true; |
else if (ltr && lineBoxList->firstLineBox() == this) |
includeLeftEdge = true; |
@@ -327,15 +327,15 @@ void InlineFlowBox::determineSpacingForFlowBoxes(bool lastLine, bool isLogically |
} |
if (!lineBoxList->lastLineBox()->isConstructed()) { |
- LayoutInline& inlineFlow = toLayoutInline(renderer()); |
- bool isLastObjectOnLine = !isAnsectorAndWithinBlock(&renderer(), logicallyLastRunRenderer) || (isLastChildForRenderer(&renderer(), logicallyLastRunRenderer) && !isLogicallyLastRunWrapped); |
+ LayoutInline& inlineFlow = toLayoutInline(layoutObject()); |
+ bool isLastObjectOnLine = !isAnsectorAndWithinBlock(&layoutObject(), logicallyLastRunRenderer) || (isLastChildForRenderer(&layoutObject(), logicallyLastRunRenderer) && !isLogicallyLastRunWrapped); |
// We include the border under these conditions: |
// (1) The next line was not created, or it is constructed. We check the previous line for rtl. |
// (2) The logicallyLastRun is not a descendant of this renderer. |
// (3) The logicallyLastRun is a descendant of this renderer, but it is the last child of this renderer and it does not wrap to the next line. |
// (4) The decoration break is set to clone therefore there will be borders on every sides. |
- if (renderer().style()->boxDecorationBreak() == DCLONE) { |
+ if (layoutObject().style()->boxDecorationBreak() == DCLONE) { |
includeLeftEdge = includeRightEdge = true; |
} else if (ltr) { |
if (!nextLineBox() |
@@ -382,9 +382,9 @@ FloatWillBeLayoutUnit InlineFlowBox::placeBoxRangeInInlineDirection(InlineBox* f |
FloatWillBeLayoutUnit& logicalLeft, FloatWillBeLayoutUnit& minLogicalLeft, FloatWillBeLayoutUnit& maxLogicalRight, bool& needsWordSpacing) |
{ |
for (InlineBox* curr = firstChild; curr && curr != lastChild; curr = curr->nextOnLine()) { |
- if (curr->renderer().isText()) { |
+ if (curr->layoutObject().isText()) { |
InlineTextBox* text = toInlineTextBox(curr); |
- LayoutText& rt = text->renderer(); |
+ LayoutText& rt = text->layoutObject(); |
FloatWillBeLayoutUnit space; |
if (rt.textLength()) { |
if (needsWordSpacing && isSpaceOrNewline(rt.characterAt(text->start()))) |
@@ -404,8 +404,8 @@ FloatWillBeLayoutUnit InlineFlowBox::placeBoxRangeInInlineDirection(InlineBox* f |
if (knownToHaveNoOverflow()) |
maxLogicalRight = std::max(logicalLeft, maxLogicalRight); |
} else { |
- if (curr->renderer().isOutOfFlowPositioned()) { |
- if (curr->renderer().parent()->style()->isLeftToRightDirection()) { |
+ if (curr->layoutObject().isOutOfFlowPositioned()) { |
+ if (curr->layoutObject().parent()->style()->isLeftToRightDirection()) { |
curr->setLogicalLeft(logicalLeft); |
} else { |
// Our offset that we cache needs to be from the edge of the right border box and |
@@ -415,7 +415,7 @@ FloatWillBeLayoutUnit InlineFlowBox::placeBoxRangeInInlineDirection(InlineBox* f |
} |
continue; // The positioned object has no effect on the width. |
} |
- if (curr->renderer().isLayoutInline()) { |
+ if (curr->layoutObject().isLayoutInline()) { |
InlineFlowBox* flow = toInlineFlowBox(curr); |
logicalLeft += flow->marginLogicalLeft(); |
if (knownToHaveNoOverflow()) |
@@ -424,7 +424,7 @@ FloatWillBeLayoutUnit InlineFlowBox::placeBoxRangeInInlineDirection(InlineBox* f |
if (knownToHaveNoOverflow()) |
maxLogicalRight = std::max(logicalLeft, maxLogicalRight); |
logicalLeft += flow->marginLogicalRight(); |
- } else if (!curr->renderer().isListMarker() || toLayoutListMarker(curr->renderer()).isInside()) { |
+ } else if (!curr->layoutObject().isListMarker() || toLayoutListMarker(curr->layoutObject()).isInside()) { |
// The box can have a different writing-mode than the overall line, so this is a bit complicated. |
// Just get all the physical margin and overflow values by hand based off |isVertical|. |
LayoutUnit logicalLeftMargin = isHorizontal() ? curr->boxModelObject()->marginLeft() : curr->boxModelObject()->marginTop(); |
@@ -453,21 +453,21 @@ bool InlineFlowBox::requiresIdeographicBaseline(const GlyphOverflowAndFallbackFo |
// FIXME: primaryFont should never be 0 here but can be in some |
// cases. crbug.com/445450 |
- RELEASE_ASSERT(renderer().style(isFirstLineStyle())->font().primaryFont()); |
+ RELEASE_ASSERT(layoutObject().style(isFirstLineStyle())->font().primaryFont()); |
- if (renderer().style(isFirstLineStyle())->fontDescription().nonCJKGlyphOrientation() == NonCJKGlyphOrientationUpright |
- || renderer().style(isFirstLineStyle())->font().primaryFont()->hasVerticalGlyphs()) |
+ if (layoutObject().style(isFirstLineStyle())->fontDescription().nonCJKGlyphOrientation() == NonCJKGlyphOrientationUpright |
+ || layoutObject().style(isFirstLineStyle())->font().primaryFont()->hasVerticalGlyphs()) |
return true; |
for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { |
- if (curr->renderer().isOutOfFlowPositioned()) |
+ if (curr->layoutObject().isOutOfFlowPositioned()) |
continue; // Positioned placeholders don't affect calculations. |
if (curr->isInlineFlowBox()) { |
if (toInlineFlowBox(curr)->requiresIdeographicBaseline(textBoxDataMap)) |
return true; |
} else { |
- if (curr->renderer().style(isFirstLineStyle())->font().primaryFont()->hasVerticalGlyphs()) |
+ if (curr->layoutObject().style(isFirstLineStyle())->font().primaryFont()->hasVerticalGlyphs()) |
return true; |
const Vector<const SimpleFontData*>* usedFonts = 0; |
@@ -493,7 +493,7 @@ void InlineFlowBox::adjustMaxAscentAndDescent(int& maxAscent, int& maxDescent, i |
for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { |
// The computed lineheight needs to be extended for the |
// positioned elements |
- if (curr->renderer().isOutOfFlowPositioned()) |
+ if (curr->layoutObject().isOutOfFlowPositioned()) |
continue; // Positioned placeholders don't affect calculations. |
if (curr->verticalAlign() == TOP || curr->verticalAlign() == BOTTOM) { |
int lineHeight = curr->lineHeight(); |
@@ -556,7 +556,7 @@ void InlineFlowBox::computeLogicalBoxHeights(RootInlineBox* rootBox, LayoutUnit& |
return; |
for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { |
- if (curr->renderer().isOutOfFlowPositioned()) |
+ if (curr->layoutObject().isOutOfFlowPositioned()) |
continue; // Positioned placeholders don't affect calculations. |
InlineFlowBox* inlineFlowBox = curr->isInlineFlowBox() ? toInlineFlowBox(curr) : 0; |
@@ -609,7 +609,7 @@ void InlineFlowBox::placeBoxesInBlockDirection(LayoutUnit top, LayoutUnit maxHei |
{ |
bool isRootBox = isRootInlineBox(); |
if (isRootBox) { |
- const FontMetrics& fontMetrics = renderer().style(isFirstLineStyle())->fontMetrics(); |
+ const FontMetrics& fontMetrics = layoutObject().style(isFirstLineStyle())->fontMetrics(); |
// RootInlineBoxes are always placed on at pixel boundaries in their logical y direction. Not doing |
// so results in incorrect rendering of text decorations, most notably underlines. |
setLogicalTop(roundToInt(top + maxAscent - fontMetrics.ascent(baselineType))); |
@@ -623,7 +623,7 @@ void InlineFlowBox::placeBoxesInBlockDirection(LayoutUnit top, LayoutUnit maxHei |
} |
for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { |
- if (curr->renderer().isOutOfFlowPositioned()) |
+ if (curr->layoutObject().isOutOfFlowPositioned()) |
continue; // Positioned placeholders don't affect calculations. |
if (descendantsHaveSameLineHeightAndBaseline()) { |
@@ -651,17 +651,17 @@ void InlineFlowBox::placeBoxesInBlockDirection(LayoutUnit top, LayoutUnit maxHei |
LayoutUnit boxHeightIncludingMargins = boxHeight; |
LayoutUnit borderPaddingHeight = 0; |
if (curr->isText() || curr->isInlineFlowBox()) { |
- const FontMetrics& fontMetrics = curr->renderer().style(isFirstLineStyle())->fontMetrics(); |
+ const FontMetrics& fontMetrics = curr->layoutObject().style(isFirstLineStyle())->fontMetrics(); |
newLogicalTop += curr->baselinePosition(baselineType) - fontMetrics.ascent(baselineType); |
if (curr->isInlineFlowBox()) { |
- LayoutBoxModelObject& boxObject = toLayoutBoxModelObject(curr->renderer()); |
+ LayoutBoxModelObject& boxObject = toLayoutBoxModelObject(curr->layoutObject()); |
newLogicalTop -= boxObject.style(isFirstLineStyle())->isHorizontalWritingMode() ? boxObject.borderTop() + boxObject.paddingTop() : |
boxObject.borderRight() + boxObject.paddingRight(); |
borderPaddingHeight = boxObject.borderAndPaddingLogicalHeight(); |
} |
newLogicalTopIncludingMargins = newLogicalTop; |
- } else if (!curr->renderer().isBR()) { |
- LayoutBox& box = toLayoutBox(curr->renderer()); |
+ } else if (!curr->layoutObject().isBR()) { |
+ LayoutBox& box = toLayoutBox(curr->layoutObject()); |
newLogicalTopIncludingMargins = newLogicalTop; |
LayoutUnit overSideMargin = curr->isHorizontal() ? box.marginTop() : box.marginRight(); |
LayoutUnit underSideMargin = curr->isHorizontal() ? box.marginBottom() : box.marginLeft(); |
@@ -672,28 +672,28 @@ void InlineFlowBox::placeBoxesInBlockDirection(LayoutUnit top, LayoutUnit maxHei |
curr->setLogicalTop(newLogicalTop.toFloat()); |
if (childAffectsTopBottomPos) { |
- if (curr->renderer().isRubyRun()) { |
+ if (curr->layoutObject().isRubyRun()) { |
// Treat the leading on the first and last lines of ruby runs as not being part of the overall lineTop/lineBottom. |
// Really this is a workaround hack for the fact that ruby should have been done as line layout and not done using |
// inline-block. |
- if (renderer().style()->isFlippedLinesWritingMode() == (curr->renderer().style()->rubyPosition() == RubyPositionAfter)) |
+ if (layoutObject().style()->isFlippedLinesWritingMode() == (curr->layoutObject().style()->rubyPosition() == RubyPositionAfter)) |
hasAnnotationsBefore = true; |
else |
hasAnnotationsAfter = true; |
- LayoutRubyRun& rubyRun = toLayoutRubyRun(curr->renderer()); |
+ LayoutRubyRun& rubyRun = toLayoutRubyRun(curr->layoutObject()); |
if (LayoutRubyBase* rubyBase = rubyRun.rubyBase()) { |
LayoutUnit bottomRubyBaseLeading = (curr->logicalHeight() - rubyBase->logicalBottom()) + rubyBase->logicalHeight() - (rubyBase->lastRootBox() ? rubyBase->lastRootBox()->lineBottom() : LayoutUnit()); |
LayoutUnit topRubyBaseLeading = rubyBase->logicalTop() + (rubyBase->firstRootBox() ? rubyBase->firstRootBox()->lineTop() : LayoutUnit()); |
- newLogicalTop += !renderer().style()->isFlippedLinesWritingMode() ? topRubyBaseLeading : bottomRubyBaseLeading; |
+ newLogicalTop += !layoutObject().style()->isFlippedLinesWritingMode() ? topRubyBaseLeading : bottomRubyBaseLeading; |
boxHeight -= (topRubyBaseLeading + bottomRubyBaseLeading); |
} |
} |
if (curr->isInlineTextBox()) { |
TextEmphasisPosition emphasisMarkPosition; |
- if (toInlineTextBox(curr)->getEmphasisMarkPosition(curr->renderer().styleRef(isFirstLineStyle()), emphasisMarkPosition)) { |
+ if (toInlineTextBox(curr)->getEmphasisMarkPosition(curr->layoutObject().styleRef(isFirstLineStyle()), emphasisMarkPosition)) { |
bool emphasisMarkIsOver = emphasisMarkPosition == TextEmphasisPositionOver; |
- if (emphasisMarkIsOver != curr->renderer().style(isFirstLineStyle())->isFlippedLinesWritingMode()) |
+ if (emphasisMarkIsOver != curr->layoutObject().style(isFirstLineStyle())->isFlippedLinesWritingMode()) |
hasAnnotationsBefore = true; |
else |
hasAnnotationsAfter = true; |
@@ -734,7 +734,7 @@ void InlineFlowBox::placeBoxesInBlockDirection(LayoutUnit top, LayoutUnit maxHei |
lineBottomIncludingMargins = std::max(lineBottom, lineBottomIncludingMargins); |
} |
- if (renderer().style()->isFlippedLinesWritingMode()) |
+ if (layoutObject().style()->isFlippedLinesWritingMode()) |
flipLinesInBlockDirection(lineTopIncludingMargins, lineBottomIncludingMargins); |
} |
} |
@@ -742,7 +742,7 @@ void InlineFlowBox::placeBoxesInBlockDirection(LayoutUnit top, LayoutUnit maxHei |
void InlineFlowBox::computeMaxLogicalTop(FloatWillBeLayoutUnit& maxLogicalTop) const |
{ |
for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { |
- if (curr->renderer().isOutOfFlowPositioned()) |
+ if (curr->layoutObject().isOutOfFlowPositioned()) |
continue; // Positioned placeholders don't affect calculations. |
if (descendantsHaveSameLineHeightAndBaseline()) |
@@ -762,7 +762,7 @@ void InlineFlowBox::flipLinesInBlockDirection(LayoutUnit lineTop, LayoutUnit lin |
setLogicalTop(lineBottom - (logicalTop() - lineTop) - logicalHeight()); |
for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { |
- if (curr->renderer().isOutOfFlowPositioned()) |
+ if (curr->layoutObject().isOutOfFlowPositioned()) |
continue; // Positioned placeholders aren't affected here. |
if (curr->isInlineFlowBox()) |
@@ -778,7 +778,7 @@ inline void InlineFlowBox::addBoxShadowVisualOverflow(LayoutRect& logicalVisualO |
if (!parent()) |
return; |
- const LayoutStyle& style = renderer().styleRef(isFirstLineStyle()); |
+ const LayoutStyle& style = layoutObject().styleRef(isFirstLineStyle()); |
WritingMode writingMode = style.writingMode(); |
ShadowList* boxShadow = style.boxShadow(); |
if (!boxShadow) |
@@ -800,7 +800,7 @@ inline void InlineFlowBox::addBorderOutsetVisualOverflow(LayoutRect& logicalVisu |
if (!parent()) |
return; |
- const LayoutStyle& style = renderer().styleRef(isFirstLineStyle()); |
+ const LayoutStyle& style = layoutObject().styleRef(isFirstLineStyle()); |
if (!style.hasBorderImageOutsets()) |
return; |
@@ -824,7 +824,7 @@ inline void InlineFlowBox::addOutlineVisualOverflow(LayoutRect& logicalVisualOve |
if (!parent()) |
return; |
- const LayoutStyle& style = renderer().styleRef(isFirstLineStyle()); |
+ const LayoutStyle& style = layoutObject().styleRef(isFirstLineStyle()); |
if (!style.hasOutline()) |
return; |
@@ -836,7 +836,7 @@ inline void InlineFlowBox::addTextBoxVisualOverflow(InlineTextBox* textBox, Glyp |
if (textBox->knownToHaveNoOverflow()) |
return; |
- const LayoutStyle& style = textBox->renderer().styleRef(isFirstLineStyle()); |
+ const LayoutStyle& style = textBox->layoutObject().styleRef(isFirstLineStyle()); |
GlyphOverflowAndFallbackFontsMap::iterator it = textBoxDataMap.find(textBox); |
GlyphOverflow* glyphOverflow = it == textBoxDataMap.end() ? 0 : &it->value.second; |
@@ -894,13 +894,13 @@ inline void InlineFlowBox::addTextBoxVisualOverflow(InlineTextBox* textBox, Glyp |
inline void InlineFlowBox::addReplacedChildOverflow(const InlineBox* inlineBox, LayoutRect& logicalLayoutOverflow, LayoutRect& logicalVisualOverflow) |
{ |
- LayoutBox& box = toLayoutBox(inlineBox->renderer()); |
+ LayoutBox& box = toLayoutBox(inlineBox->layoutObject()); |
// Visual overflow only propagates if the box doesn't have a self-painting layer. This rectangle does not include |
// transforms or relative positioning (since those objects always have self-painting layers), but it does need to be adjusted |
// for writing-mode differences. |
if (!box.hasSelfPaintingLayer()) { |
- LayoutRect childLogicalVisualOverflow = box.logicalVisualOverflowRectForPropagation(renderer().styleRef()); |
+ LayoutRect childLogicalVisualOverflow = box.logicalVisualOverflowRectForPropagation(layoutObject().styleRef()); |
childLogicalVisualOverflow.move(inlineBox->logicalLeft(), inlineBox->logicalTop()); |
logicalVisualOverflow.unite(childLogicalVisualOverflow); |
} |
@@ -908,7 +908,7 @@ inline void InlineFlowBox::addReplacedChildOverflow(const InlineBox* inlineBox, |
// Layout overflow internal to the child box only propagates if the child box doesn't have overflow clip set. |
// Otherwise the child border box propagates as layout overflow. This rectangle must include transforms and relative positioning |
// and be adjusted for writing-mode differences. |
- LayoutRect childLogicalLayoutOverflow = box.logicalLayoutOverflowRectForPropagation(renderer().styleRef()); |
+ LayoutRect childLogicalLayoutOverflow = box.logicalLayoutOverflowRectForPropagation(layoutObject().styleRef()); |
childLogicalLayoutOverflow.move(inlineBox->logicalLeft(), inlineBox->logicalTop()); |
logicalLayoutOverflow.unite(childLogicalLayoutOverflow); |
} |
@@ -937,12 +937,12 @@ void InlineFlowBox::computeOverflow(LayoutUnit lineTop, LayoutUnit lineBottom, G |
addOutlineVisualOverflow(logicalVisualOverflow); |
for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { |
- if (curr->renderer().isOutOfFlowPositioned()) |
+ if (curr->layoutObject().isOutOfFlowPositioned()) |
continue; // Positioned placeholders don't affect calculations. |
- if (curr->renderer().isText()) { |
+ if (curr->layoutObject().isText()) { |
InlineTextBox* text = toInlineTextBox(curr); |
- LayoutText& rt = text->renderer(); |
+ LayoutText& rt = text->layoutObject(); |
if (rt.isBR()) |
continue; |
// FIXME: the call to enclosingLayoutRect() below is temporary and should be removed once |
@@ -950,7 +950,7 @@ void InlineFlowBox::computeOverflow(LayoutUnit lineTop, LayoutUnit lineBottom, G |
LayoutRect textBoxOverflow(text->logicalFrameRect().enclosingLayoutRect()); |
addTextBoxVisualOverflow(text, textBoxDataMap, textBoxOverflow); |
logicalVisualOverflow.unite(textBoxOverflow); |
- } else if (curr->renderer().isLayoutInline()) { |
+ } else if (curr->layoutObject().isLayoutInline()) { |
InlineFlowBox* flow = toInlineFlowBox(curr); |
flow->computeOverflow(lineTop, lineBottom, textBoxDataMap); |
if (!flow->boxModelObject()->hasSelfPaintingLayer()) |
@@ -1013,19 +1013,19 @@ bool InlineFlowBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& re |
// We need to account for culled inline parents of the hit-tested nodes, so that they may also get included in area-based hit-tests. |
LayoutObject* culledParent = 0; |
for (InlineBox* curr = lastChild(); curr; curr = curr->prevOnLine()) { |
- if (curr->renderer().isText() || !curr->boxModelObject()->hasSelfPaintingLayer()) { |
+ if (curr->layoutObject().isText() || !curr->boxModelObject()->hasSelfPaintingLayer()) { |
LayoutObject* newParent = 0; |
// Culled parents are only relevant for area-based hit-tests, so ignore it in point-based ones. |
if (locationInContainer.isRectBasedTest()) { |
- newParent = curr->renderer().parent(); |
- if (newParent == renderer()) |
+ newParent = curr->layoutObject().parent(); |
+ if (newParent == layoutObject()) |
newParent = 0; |
} |
// Check the culled parent after all its children have been checked, to do this we wait until |
// we are about to test an element with a different parent. |
if (newParent != culledParent) { |
if (!newParent || !newParent->isDescendantOf(culledParent)) { |
- while (culledParent && culledParent != renderer() && culledParent != newParent) { |
+ while (culledParent && culledParent != layoutObject() && culledParent != newParent) { |
if (culledParent->isLayoutInline() && toLayoutInline(culledParent)->hitTestCulledInline(request, result, locationInContainer, accumulatedOffset)) |
return true; |
culledParent = culledParent->parent(); |
@@ -1034,13 +1034,13 @@ bool InlineFlowBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& re |
culledParent = newParent; |
} |
if (curr->nodeAtPoint(request, result, locationInContainer, accumulatedOffset, lineTop, lineBottom)) { |
- renderer().updateHitTestResult(result, locationInContainer.point() - toLayoutSize(accumulatedOffset)); |
+ layoutObject().updateHitTestResult(result, locationInContainer.point() - toLayoutSize(accumulatedOffset)); |
return true; |
} |
} |
} |
// Check any culled ancestor of the final children tested. |
- while (culledParent && culledParent != renderer()) { |
+ while (culledParent && culledParent != layoutObject()) { |
if (culledParent->isLayoutInline() && toLayoutInline(culledParent)->hitTestCulledInline(request, result, locationInContainer, accumulatedOffset)) |
return true; |
culledParent = culledParent->parent(); |
@@ -1054,7 +1054,7 @@ bool InlineFlowBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& re |
LayoutUnit height = frameRect.height(); |
// Constrain our hit testing to the line top and bottom if necessary. |
- bool noQuirksMode = renderer().document().inNoQuirksMode(); |
+ bool noQuirksMode = layoutObject().document().inNoQuirksMode(); |
if (!noQuirksMode && !hasTextChildren() && !(descendantsHaveSameLineHeightAndBaseline() && hasTextDescendants())) { |
RootInlineBox& rootBox = root(); |
LayoutUnit& top = isHorizontal() ? minY : minX; |
@@ -1070,8 +1070,8 @@ bool InlineFlowBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& re |
rect.moveBy(accumulatedOffset); |
if (visibleToHitTestRequest(request) && locationInContainer.intersects(rect)) { |
- renderer().updateHitTestResult(result, flipForWritingMode(locationInContainer.point() - toLayoutSize(accumulatedOffset))); // Don't add in m_x or m_y here, we want coords in the containing block's space. |
- if (!result.addNodeToListBasedTestResult(renderer().node(), request, locationInContainer, rect)) |
+ layoutObject().updateHitTestResult(result, flipForWritingMode(locationInContainer.point() - toLayoutSize(accumulatedOffset))); // Don't add in m_x or m_y here, we want coords in the containing block's space. |
+ if (!result.addNodeToListBasedTestResult(layoutObject().node(), request, locationInContainer, rect)) |
return true; |
} |
@@ -1088,8 +1088,8 @@ bool InlineFlowBox::boxShadowCanBeAppliedToBackground(const FillLayer& lastBackg |
// The checks here match how paintFillLayer() decides whether to clip (if it does, the shadow |
// would be clipped out, so it has to be drawn separately). |
StyleImage* image = lastBackgroundLayer.image(); |
- bool hasFillImage = image && image->canRender(renderer(), renderer().style()->effectiveZoom()); |
- return (!hasFillImage && !renderer().style()->hasBorderRadius()) || (!prevLineBox() && !nextLineBox()) || !parent(); |
+ bool hasFillImage = image && image->canRender(layoutObject(), layoutObject().style()->effectiveZoom()); |
+ return (!hasFillImage && !layoutObject().style()->hasBorderRadius()) || (!prevLineBox() && !nextLineBox()) || !parent(); |
} |
InlineBox* InlineFlowBox::firstLeafChild() const |
@@ -1161,14 +1161,14 @@ LayoutUnit InlineFlowBox::computeOverAnnotationAdjustment(LayoutUnit allowedPosi |
{ |
LayoutUnit result = 0; |
for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { |
- if (curr->renderer().isOutOfFlowPositioned()) |
+ if (curr->layoutObject().isOutOfFlowPositioned()) |
continue; // Positioned placeholders don't affect calculations. |
if (curr->isInlineFlowBox()) |
result = std::max(result, toInlineFlowBox(curr)->computeOverAnnotationAdjustment(allowedPosition)); |
- if (curr->renderer().isReplaced() && curr->renderer().isRubyRun() && curr->renderer().style()->rubyPosition() == RubyPositionBefore) { |
- LayoutRubyRun& rubyRun = toLayoutRubyRun(curr->renderer()); |
+ if (curr->layoutObject().isReplaced() && curr->layoutObject().isRubyRun() && curr->layoutObject().style()->rubyPosition() == RubyPositionBefore) { |
+ LayoutRubyRun& rubyRun = toLayoutRubyRun(curr->layoutObject()); |
LayoutRubyText* rubyText = rubyRun.rubyText(); |
if (!rubyText) |
continue; |
@@ -1189,7 +1189,7 @@ LayoutUnit InlineFlowBox::computeOverAnnotationAdjustment(LayoutUnit allowedPosi |
} |
if (curr->isInlineTextBox()) { |
- const LayoutStyle& style = curr->renderer().styleRef(isFirstLineStyle()); |
+ const LayoutStyle& style = curr->layoutObject().styleRef(isFirstLineStyle()); |
TextEmphasisPosition emphasisMarkPosition; |
if (style.textEmphasisMark() != TextEmphasisMarkNone && toInlineTextBox(curr)->getEmphasisMarkPosition(style, emphasisMarkPosition) && emphasisMarkPosition == TextEmphasisPositionOver) { |
if (!style.isFlippedLinesWritingMode()) { |
@@ -1209,14 +1209,14 @@ LayoutUnit InlineFlowBox::computeUnderAnnotationAdjustment(LayoutUnit allowedPos |
{ |
LayoutUnit result = 0; |
for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { |
- if (curr->renderer().isOutOfFlowPositioned()) |
+ if (curr->layoutObject().isOutOfFlowPositioned()) |
continue; // Positioned placeholders don't affect calculations. |
if (curr->isInlineFlowBox()) |
result = std::max(result, toInlineFlowBox(curr)->computeUnderAnnotationAdjustment(allowedPosition)); |
- if (curr->renderer().isReplaced() && curr->renderer().isRubyRun() && curr->renderer().style()->rubyPosition() == RubyPositionAfter) { |
- LayoutRubyRun& rubyRun = toLayoutRubyRun(curr->renderer()); |
+ if (curr->layoutObject().isReplaced() && curr->layoutObject().isRubyRun() && curr->layoutObject().style()->rubyPosition() == RubyPositionAfter) { |
+ LayoutRubyRun& rubyRun = toLayoutRubyRun(curr->layoutObject()); |
LayoutRubyText* rubyText = rubyRun.rubyText(); |
if (!rubyText) |
continue; |
@@ -1237,7 +1237,7 @@ LayoutUnit InlineFlowBox::computeUnderAnnotationAdjustment(LayoutUnit allowedPos |
} |
if (curr->isInlineTextBox()) { |
- const LayoutStyle& style = curr->renderer().styleRef(isFirstLineStyle()); |
+ const LayoutStyle& style = curr->layoutObject().styleRef(isFirstLineStyle()); |
if (style.textEmphasisMark() != TextEmphasisMarkNone && style.textEmphasisPosition() == TextEmphasisPositionUnder) { |
if (!style.isFlippedLinesWritingMode()) { |
LayoutUnit bottomOfEmphasisMark = curr->logicalBottom() + style.font().emphasisMarkHeight(style.textEmphasisMarkString()); |
@@ -1268,7 +1268,7 @@ void InlineFlowBox::collectLeafBoxesInLogicalOrder(Vector<InlineBox*>& leafBoxes |
leafBoxesInLogicalOrder.append(leaf); |
} |
- if (renderer().style()->rtlOrdering() == VisualOrder) |
+ if (layoutObject().style()->rtlOrdering() == VisualOrder) |
return; |
// Reverse of reordering of the line (L2 according to Bidi spec): |