| Index: Source/core/rendering/RenderReplaced.cpp
|
| diff --git a/Source/core/rendering/RenderReplaced.cpp b/Source/core/rendering/RenderReplaced.cpp
|
| index eecded236d960ce6f9210cc2f1168539c2bfb712..d16c6e69ebcc77f3e1e0c46ccad75f3b67efc77f 100644
|
| --- a/Source/core/rendering/RenderReplaced.cpp
|
| +++ b/Source/core/rendering/RenderReplaced.cpp
|
| @@ -198,8 +198,8 @@ bool RenderReplaced::shouldPaint(PaintInfo& paintInfo, const LayoutPoint& paintO
|
| LayoutUnit top = adjustedPaintOffset.y() + visualOverflowRect().y();
|
| LayoutUnit bottom = adjustedPaintOffset.y() + visualOverflowRect().maxY();
|
| if (isSelected() && inlineBoxWrapper()) {
|
| - LayoutUnit selTop = paintOffset.y() + inlineBoxWrapper()->root()->selectionTop();
|
| - LayoutUnit selBottom = paintOffset.y() + selTop + inlineBoxWrapper()->root()->selectionHeight();
|
| + LayoutUnit selTop = paintOffset.y() + inlineBoxWrapper()->root().selectionTop();
|
| + LayoutUnit selBottom = paintOffset.y() + selTop + inlineBoxWrapper()->root().selectionHeight();
|
| top = min(selTop, top);
|
| bottom = max(selBottom, bottom);
|
| }
|
| @@ -523,7 +523,7 @@ PositionWithAffinity RenderReplaced::positionForPoint(const LayoutPoint& point)
|
| {
|
| // FIXME: This code is buggy if the replaced element is relative positioned.
|
| InlineBox* box = inlineBoxWrapper();
|
| - RootInlineBox* rootBox = box ? box->root() : 0;
|
| + RootInlineBox* rootBox = box ? &box->root() : 0;
|
|
|
| LayoutUnit top = rootBox ? rootBox->selectionTop() : logicalTop();
|
| LayoutUnit bottom = rootBox ? rootBox->selectionBottom() : logicalBottom();
|
| @@ -571,11 +571,11 @@ LayoutRect RenderReplaced::localSelectionRect(bool checkWhetherSelected) const
|
| // We're a block-level replaced element. Just return our own dimensions.
|
| return LayoutRect(LayoutPoint(), size());
|
|
|
| - RootInlineBox* root = inlineBoxWrapper()->root();
|
| - LayoutUnit newLogicalTop = root->block().style()->isFlippedBlocksWritingMode() ? inlineBoxWrapper()->logicalBottom() - root->selectionBottom() : root->selectionTop() - inlineBoxWrapper()->logicalTop();
|
| - if (root->block().style()->isHorizontalWritingMode())
|
| - return LayoutRect(0, newLogicalTop, width(), root->selectionHeight());
|
| - return LayoutRect(newLogicalTop, 0, root->selectionHeight(), height());
|
| + RootInlineBox& root = inlineBoxWrapper()->root();
|
| + LayoutUnit newLogicalTop = root.block().style()->isFlippedBlocksWritingMode() ? inlineBoxWrapper()->logicalBottom() - root.selectionBottom() : root.selectionTop() - inlineBoxWrapper()->logicalTop();
|
| + if (root.block().style()->isHorizontalWritingMode())
|
| + return LayoutRect(0, newLogicalTop, width(), root.selectionHeight());
|
| + return LayoutRect(newLogicalTop, 0, root.selectionHeight(), height());
|
| }
|
|
|
| void RenderReplaced::setSelectionState(SelectionState state)
|
| @@ -584,8 +584,7 @@ void RenderReplaced::setSelectionState(SelectionState state)
|
| RenderBox::setSelectionState(state);
|
|
|
| if (inlineBoxWrapper() && canUpdateSelectionOnRootLineBoxes())
|
| - if (RootInlineBox* root = inlineBoxWrapper()->root())
|
| - root->setHasSelectedChildren(isSelected());
|
| + inlineBoxWrapper()->root().setHasSelectedChildren(isSelected());
|
| }
|
|
|
| bool RenderReplaced::isSelected() const
|
|
|