Index: Source/core/rendering/shapes/ShapeOutsideInfo.cpp |
diff --git a/Source/core/rendering/shapes/ShapeOutsideInfo.cpp b/Source/core/rendering/shapes/ShapeOutsideInfo.cpp |
index 6b4138b66064792b7e32429ee8adf85d9171312b..43064971c36390c3b2ad7197493d70422eeb6594 100644 |
--- a/Source/core/rendering/shapes/ShapeOutsideInfo.cpp |
+++ b/Source/core/rendering/shapes/ShapeOutsideInfo.cpp |
@@ -307,4 +307,33 @@ void ShapeOutsideInfo::updateDeltasForContainingBlockLine(const RenderBlockFlow& |
} |
} |
+LayoutRect ShapeOutsideInfo::computedShapePhysicalBoundingBox() const |
+{ |
+ LayoutRect physicalBoundingBox = computedShape().shapeMarginLogicalBoundingBox(); |
+ physicalBoundingBox.setX(physicalBoundingBox.x() + logicalLeftOffset()); |
+ physicalBoundingBox.setY(physicalBoundingBox.y() + logicalTopOffset()); |
+ if (m_renderer.style()->isFlippedBlocksWritingMode()) |
leviw_travelin_and_unemployed
2014/05/02 20:41:02
Why isn't this if/else?
Habib Virji
2014/05/06 08:50:25
Done.
|
+ physicalBoundingBox.setY(m_renderer.logicalHeight() - physicalBoundingBox.maxY()); |
+ if (!m_renderer.style()->isHorizontalWritingMode()) |
leviw_travelin_and_unemployed
2014/05/02 20:41:02
Ditto.
Habib Virji
2014/05/06 08:50:25
Done.
|
+ physicalBoundingBox = physicalBoundingBox.transposedRect(); |
+ return physicalBoundingBox; |
+} |
+ |
+FloatPoint ShapeOutsideInfo::shapeToRendererPoint(FloatPoint point) const |
+{ |
+ FloatPoint result = FloatPoint(point.x() + logicalLeftOffset(), point.y() + logicalTopOffset()); |
+ if (m_renderer.style()->isFlippedBlocksWritingMode()) |
+ result.setY(m_renderer.logicalHeight() - result.y()); |
+ if (!m_renderer.style()->isHorizontalWritingMode()) |
+ result = result.transposedPoint(); |
+ return result; |
+} |
+ |
+FloatSize ShapeOutsideInfo::shapeToRendererSize(FloatSize size) const |
+{ |
+ if (!m_renderer.style()->isHorizontalWritingMode()) |
+ return size.transposedSize(); |
+ return size; |
+} |
+ |
} |