| Index: Source/core/rendering/RenderBox.cpp
|
| diff --git a/Source/core/rendering/RenderBox.cpp b/Source/core/rendering/RenderBox.cpp
|
| index 356f8d868f1f483623db8d66f6b639b43fb3d2ac..a73a8cdb5e210e1907fb45e0b9b45cf068e0a281 100644
|
| --- a/Source/core/rendering/RenderBox.cpp
|
| +++ b/Source/core/rendering/RenderBox.cpp
|
| @@ -1763,7 +1763,7 @@ void RenderBox::mapRectToPaintInvalidationBacking(const RenderLayerModelObject*
|
| }
|
|
|
| if (paintInvalidationContainer == this) {
|
| - if (paintInvalidationContainer->style()->isFlippedBlocksWritingMode())
|
| + if (paintInvalidationContainer->style()->slowIsFlippedBlocksWritingMode())
|
| flipForWritingMode(rect);
|
| return;
|
| }
|
| @@ -2918,7 +2918,7 @@ static void computeLogicalLeftPositionedOffset(LayoutUnit& logicalLeftPos, const
|
| {
|
| // Deal with differing writing modes here. Our offset needs to be in the containing block's coordinate space. If the containing block is flipped
|
| // along this axis, then we need to flip the coordinate. This can only happen if the containing block is both a flipped mode and perpendicular to us.
|
| - if (containerBlock->isHorizontalWritingMode() != child->isHorizontalWritingMode() && containerBlock->style()->isFlippedBlocksWritingMode()) {
|
| + if (containerBlock->isHorizontalWritingMode() != child->isHorizontalWritingMode() && containerBlock->style()->slowIsFlippedBlocksWritingMode()) {
|
| logicalLeftPos = containerLogicalWidth - logicalWidthValue - logicalLeftPos;
|
| logicalLeftPos += (child->isHorizontalWritingMode() ? containerBlock->borderRight() : containerBlock->borderBottom());
|
| } else {
|
| @@ -3229,12 +3229,12 @@ static void computeLogicalTopPositionedOffset(LayoutUnit& logicalTopPos, const R
|
| {
|
| // Deal with differing writing modes here. Our offset needs to be in the containing block's coordinate space. If the containing block is flipped
|
| // along this axis, then we need to flip the coordinate. This can only happen if the containing block is both a flipped mode and perpendicular to us.
|
| - if ((child->style()->isFlippedBlocksWritingMode() && child->isHorizontalWritingMode() != containerBlock->isHorizontalWritingMode())
|
| - || (child->style()->isFlippedBlocksWritingMode() != containerBlock->style()->isFlippedBlocksWritingMode() && child->isHorizontalWritingMode() == containerBlock->isHorizontalWritingMode()))
|
| + if ((child->style()->slowIsFlippedBlocksWritingMode() && child->isHorizontalWritingMode() != containerBlock->isHorizontalWritingMode())
|
| + || (child->style()->slowIsFlippedBlocksWritingMode() != containerBlock->style()->slowIsFlippedBlocksWritingMode() && child->isHorizontalWritingMode() == containerBlock->isHorizontalWritingMode()))
|
| logicalTopPos = containerLogicalHeight - logicalHeightValue - logicalTopPos;
|
|
|
| // Our offset is from the logical bottom edge in a flipped environment, e.g., right for vertical-rl and bottom for horizontal-bt.
|
| - if (containerBlock->style()->isFlippedBlocksWritingMode() && child->isHorizontalWritingMode() == containerBlock->isHorizontalWritingMode()) {
|
| + if (containerBlock->style()->slowIsFlippedBlocksWritingMode() && child->isHorizontalWritingMode() == containerBlock->isHorizontalWritingMode()) {
|
| if (child->isHorizontalWritingMode())
|
| logicalTopPos += containerBlock->borderBottom();
|
| else
|
| @@ -4339,7 +4339,9 @@ LayoutUnit RenderBox::offsetTop() const
|
|
|
| LayoutPoint RenderBox::flipForWritingModeForChild(const RenderBox* child, const LayoutPoint& point) const
|
| {
|
| - if (!style()->isFlippedBlocksWritingMode())
|
| + if (!UNLIKELY(document().containsAnyVerticalWritingModes()))
|
| + return point;
|
| + if (!style()->slowIsFlippedBlocksWritingMode())
|
| return point;
|
|
|
| // The child is going to add in its x() and y(), so we have to make sure it ends up in
|
| @@ -4349,63 +4351,15 @@ LayoutPoint RenderBox::flipForWritingModeForChild(const RenderBox* child, const
|
| return LayoutPoint(point.x() + width() - child->width() - (2 * child->x()), point.y());
|
| }
|
|
|
| -void RenderBox::flipForWritingMode(LayoutRect& rect) const
|
| -{
|
| - if (!style()->isFlippedBlocksWritingMode())
|
| - return;
|
| -
|
| - if (isHorizontalWritingMode())
|
| - rect.setY(height() - rect.maxY());
|
| - else
|
| - rect.setX(width() - rect.maxX());
|
| -}
|
| -
|
| -LayoutUnit RenderBox::flipForWritingMode(LayoutUnit position) const
|
| -{
|
| - if (!style()->isFlippedBlocksWritingMode())
|
| - return position;
|
| - return logicalHeight() - position;
|
| -}
|
| -
|
| -LayoutPoint RenderBox::flipForWritingMode(const LayoutPoint& position) const
|
| -{
|
| - if (!style()->isFlippedBlocksWritingMode())
|
| - return position;
|
| - return isHorizontalWritingMode() ? LayoutPoint(position.x(), height() - position.y()) : LayoutPoint(width() - position.x(), position.y());
|
| -}
|
| -
|
| LayoutPoint RenderBox::flipForWritingModeIncludingColumns(const LayoutPoint& point) const
|
| {
|
| - if (!hasColumns() || !style()->isFlippedBlocksWritingMode())
|
| + if (!UNLIKELY(document().containsAnyVerticalWritingModes()))
|
| + return point;
|
| + if (!hasColumns() || !style()->slowIsFlippedBlocksWritingMode())
|
| return flipForWritingMode(point);
|
| return toRenderBlock(this)->flipForWritingModeIncludingColumns(point);
|
| }
|
|
|
| -LayoutSize RenderBox::flipForWritingMode(const LayoutSize& offset) const
|
| -{
|
| - if (!style()->isFlippedBlocksWritingMode())
|
| - return offset;
|
| - return isHorizontalWritingMode() ? LayoutSize(offset.width(), height() - offset.height()) : LayoutSize(width() - offset.width(), offset.height());
|
| -}
|
| -
|
| -FloatPoint RenderBox::flipForWritingMode(const FloatPoint& position) const
|
| -{
|
| - if (!style()->isFlippedBlocksWritingMode())
|
| - return position;
|
| - return isHorizontalWritingMode() ? FloatPoint(position.x(), height() - position.y()) : FloatPoint(width() - position.x(), position.y());
|
| -}
|
| -
|
| -void RenderBox::flipForWritingMode(FloatRect& rect) const
|
| -{
|
| - if (!style()->isFlippedBlocksWritingMode())
|
| - return;
|
| -
|
| - if (isHorizontalWritingMode())
|
| - rect.setY(height() - rect.maxY());
|
| - else
|
| - rect.setX(width() - rect.maxX());
|
| -}
|
| -
|
| LayoutPoint RenderBox::topLeftLocation() const
|
| {
|
| RenderBlock* containerBlock = containingBlock();
|
|
|