Index: Source/core/rendering/RenderBox.cpp |
diff --git a/Source/core/rendering/RenderBox.cpp b/Source/core/rendering/RenderBox.cpp |
index 356f8d868f1f483623db8d66f6b639b43fb3d2ac..a70a75e403ddf77bdf9cfd77b34795285488ece1 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()) { |
chrishtr
2014/10/28 18:18:21
Are cases like this ones that didn't make the metr
|
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().containsAnyRareWritingMode())) |
+ 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().containsAnyRareWritingMode())) |
+ 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(); |