| Index: Source/core/layout/line/InlineFlowBox.cpp
|
| diff --git a/Source/core/layout/line/InlineFlowBox.cpp b/Source/core/layout/line/InlineFlowBox.cpp
|
| index 6dc6eba0597fd2f6ea140fda006f7d61304d08b7..dbdd468b029a068cc9076dfc0c7d7f95f14ea247 100644
|
| --- a/Source/core/layout/line/InlineFlowBox.cpp
|
| +++ b/Source/core/layout/line/InlineFlowBox.cpp
|
| @@ -164,7 +164,7 @@ void InlineFlowBox::addToLine(InlineBox* child)
|
| LayoutBox& box = toLayoutBox(child->layoutObject());
|
| if (box.hasOverflowModel() || box.hasSelfPaintingLayer())
|
| child->clearKnownToHaveNoOverflow();
|
| - } else if (!child->layoutObject().isBR() && (child->layoutObject().style(isFirstLineStyle())->boxShadow() || child->boxModelObject()->hasSelfPaintingLayer()
|
| + } 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())) {
|
| @@ -429,8 +429,8 @@ LayoutUnit InlineFlowBox::placeBoxRangeInInlineDirection(InlineBox* firstChild,
|
| } 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 |isHorizontal|.
|
| - LayoutUnit logicalLeftMargin = isHorizontal() ? curr->boxModelObject()->marginLeft() : curr->boxModelObject()->marginTop();
|
| - LayoutUnit logicalRightMargin = isHorizontal() ? curr->boxModelObject()->marginRight() : curr->boxModelObject()->marginBottom();
|
| + LayoutUnit logicalLeftMargin = isHorizontal() ? curr->boxModelObject().marginLeft() : curr->boxModelObject().marginTop();
|
| + LayoutUnit logicalRightMargin = isHorizontal() ? curr->boxModelObject().marginRight() : curr->boxModelObject().marginBottom();
|
|
|
| logicalLeft += logicalLeftMargin;
|
| curr->setLogicalLeft(logicalLeft);
|
| @@ -549,7 +549,7 @@ void InlineFlowBox::computeLogicalBoxHeights(RootInlineBox* rootBox, LayoutUnit&
|
| } else if (curr->verticalAlign() == BOTTOM) {
|
| if (maxPositionBottom < boxHeight)
|
| maxPositionBottom = boxHeight;
|
| - } else if (!inlineFlowBox || strictMode || inlineFlowBox->hasTextChildren() || (inlineFlowBox->descendantsHaveSameLineHeightAndBaseline() && inlineFlowBox->hasTextDescendants()) || inlineFlowBox->boxModelObject()->hasInlineDirectionBordersOrPadding()) {
|
| + } else if (!inlineFlowBox || strictMode || inlineFlowBox->hasTextChildren() || (inlineFlowBox->descendantsHaveSameLineHeightAndBaseline() && inlineFlowBox->hasTextDescendants()) || inlineFlowBox->boxModelObject().hasInlineDirectionBordersOrPadding()) {
|
| // Note that these values can be negative. Even though we only affect the maxAscent and maxDescent values
|
| // if our box (excluding line-height) was above (for ascent) or below (for descent) the root baseline, once you factor in line-height
|
| // the final box can end up being fully above or fully below the root box's baseline! This is ok, but what it
|
| @@ -588,7 +588,7 @@ void InlineFlowBox::placeBoxesInBlockDirection(LayoutUnit top, LayoutUnit maxHei
|
| if (descendantsHaveSameLineHeightAndBaseline()) {
|
| adjustmentForChildrenWithSameLineHeightAndBaseline = logicalTop();
|
| if (parent())
|
| - adjustmentForChildrenWithSameLineHeightAndBaseline += (boxModelObject()->borderBefore() + boxModelObject()->paddingBefore());
|
| + adjustmentForChildrenWithSameLineHeightAndBaseline += (boxModelObject().borderBefore() + boxModelObject().paddingBefore());
|
| }
|
|
|
| for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) {
|
| @@ -607,7 +607,7 @@ void InlineFlowBox::placeBoxesInBlockDirection(LayoutUnit top, LayoutUnit maxHei
|
| } else if (curr->verticalAlign() == BOTTOM) {
|
| curr->setLogicalTop((top + maxHeight - curr->lineHeight()));
|
| } else {
|
| - if (!strictMode && inlineFlowBox && !inlineFlowBox->hasTextChildren() && !curr->boxModelObject()->hasInlineDirectionBordersOrPadding()
|
| + if (!strictMode && inlineFlowBox && !inlineFlowBox->hasTextChildren() && !curr->boxModelObject().hasInlineDirectionBordersOrPadding()
|
| && !(inlineFlowBox->descendantsHaveSameLineHeightAndBaseline() && inlineFlowBox->hasTextDescendants()))
|
| childAffectsTopBottomPos = false;
|
| LayoutUnit posAdjust = maxAscent - curr->baselinePosition(baselineType);
|
| @@ -922,10 +922,10 @@ void InlineFlowBox::computeOverflow(LayoutUnit lineTop, LayoutUnit lineBottom, G
|
| } else if (curr->layoutObject().isLayoutInline()) {
|
| InlineFlowBox* flow = toInlineFlowBox(curr);
|
| flow->computeOverflow(lineTop, lineBottom, textBoxDataMap);
|
| - if (!flow->boxModelObject()->hasSelfPaintingLayer())
|
| + if (!flow->boxModelObject().hasSelfPaintingLayer())
|
| logicalVisualOverflow.unite(flow->logicalVisualOverflowRect(lineTop, lineBottom));
|
| LayoutRect childLayoutOverflow = flow->logicalLayoutOverflowRect(lineTop, lineBottom);
|
| - childLayoutOverflow.move(flow->boxModelObject()->relativePositionLogicalOffset());
|
| + childLayoutOverflow.move(flow->boxModelObject().relativePositionLogicalOffset());
|
| logicalLayoutOverflow.unite(childLayoutOverflow);
|
| } else {
|
| addReplacedChildOverflow(curr, logicalLayoutOverflow, logicalVisualOverflow);
|
| @@ -986,7 +986,7 @@ bool InlineFlowBox::nodeAtPoint(HitTestResult& result, const HitTestLocation& lo
|
| prev = curr->prevOnLine();
|
|
|
| // Layers will handle hit testing themselves.
|
| - if (curr->boxModelObject() && curr->boxModelObject()->hasSelfPaintingLayer())
|
| + if (curr->boxModelObject() && curr->boxModelObject().hasSelfPaintingLayer())
|
| continue;
|
|
|
| if (curr->nodeAtPoint(result, locationInContainer, accumulatedOffset, lineTop, lineBottom)) {
|
|
|