summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/rendering/InlineBox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/InlineBox.cpp')
-rw-r--r--Source/WebCore/rendering/InlineBox.cpp32
1 files changed, 22 insertions, 10 deletions
diff --git a/Source/WebCore/rendering/InlineBox.cpp b/Source/WebCore/rendering/InlineBox.cpp
index 4fcbe2d..1f4e244 100644
--- a/Source/WebCore/rendering/InlineBox.cpp
+++ b/Source/WebCore/rendering/InlineBox.cpp
@@ -150,14 +150,12 @@ void InlineBox::attachLine()
toRenderBox(m_renderer)->setInlineBoxWrapper(this);
}
-void InlineBox::adjustPosition(int dx, int dy)
+void InlineBox::adjustPosition(float dx, float dy)
{
m_x += dx;
m_y += dy;
- if (m_renderer->isReplaced()) {
- RenderBox* box = toRenderBox(m_renderer);
- box->move(dx, dy);
- }
+ if (m_renderer->isReplaced())
+ toRenderBox(m_renderer)->positionLineBox(this);
}
void InlineBox::paint(PaintInfo& paintInfo, int tx, int ty)
@@ -278,21 +276,35 @@ bool InlineBox::canAccommodateEllipsis(bool ltr, int blockEdge, int ellipsisWidt
return !(boxRect.intersects(ellipsisRect));
}
-int InlineBox::placeEllipsisBox(bool, int, int, int, bool&)
+float InlineBox::placeEllipsisBox(bool, float, float, float, bool&)
{
// Use -1 to mean "we didn't set the position."
return -1;
}
-IntPoint InlineBox::locationIncludingFlipping()
+FloatPoint InlineBox::locationIncludingFlipping()
{
if (!renderer()->style()->isFlippedBlocksWritingMode())
- return IntPoint(x(), y());
+ return FloatPoint(x(), y());
RenderBlock* block = root()->block();
if (block->style()->isHorizontalWritingMode())
- return IntPoint(x(), block->height() - height() - y());
+ return FloatPoint(x(), block->height() - height() - y());
else
- return IntPoint(block->width() - width() - x(), y());
+ return FloatPoint(block->width() - width() - x(), y());
+}
+
+void InlineBox::flipForWritingMode(FloatRect& rect)
+{
+ if (!renderer()->style()->isFlippedBlocksWritingMode())
+ return;
+ root()->block()->flipForWritingMode(rect);
+}
+
+FloatPoint InlineBox::flipForWritingMode(const FloatPoint& point)
+{
+ if (!renderer()->style()->isFlippedBlocksWritingMode())
+ return point;
+ return root()->block()->flipForWritingMode(point);
}
void InlineBox::flipForWritingMode(IntRect& rect)