diff options
Diffstat (limited to 'WebCore/rendering/RenderSVGInline.cpp')
-rw-r--r-- | WebCore/rendering/RenderSVGInline.cpp | 53 |
1 files changed, 19 insertions, 34 deletions
diff --git a/WebCore/rendering/RenderSVGInline.cpp b/WebCore/rendering/RenderSVGInline.cpp index 85d148e..ca0fdb5 100644 --- a/WebCore/rendering/RenderSVGInline.cpp +++ b/WebCore/rendering/RenderSVGInline.cpp @@ -26,11 +26,7 @@ #if ENABLE(SVG) #include "RenderSVGInline.h" -#include "FloatQuad.h" -#include "RenderBlock.h" #include "SVGInlineFlowBox.h" -#include "SVGInlineTextBox.h" -#include "SVGRootInlineBox.h" namespace WebCore { @@ -46,25 +42,6 @@ InlineFlowBox* RenderSVGInline::createInlineFlowBox() return box; } -void RenderSVGInline::absoluteRects(Vector<IntRect>& rects, int, int) -{ - InlineFlowBox* firstBox = firstLineBox(); - - RootInlineBox* rootBox = firstBox ? firstBox->root() : 0; - RenderBox* object = rootBox ? rootBox->block() : 0; - - if (!object) - return; - - int xRef = object->x(); - int yRef = object->y(); - - for (InlineFlowBox* curr = firstBox; curr; curr = curr->nextLineBox()) { - FloatRect rect(xRef + curr->x(), yRef + curr->y(), curr->width(), curr->height()); - rects.append(enclosingIntRect(localToAbsoluteQuad(rect).boundingBox())); - } -} - FloatRect RenderSVGInline::objectBoundingBox() const { if (const RenderObject* object = findTextRootObject(this)) @@ -89,25 +66,33 @@ FloatRect RenderSVGInline::repaintRectInLocalCoordinates() const return FloatRect(); } -void RenderSVGInline::absoluteQuads(Vector<FloatQuad>& quads) +IntRect RenderSVGInline::clippedOverflowRectForRepaint(RenderBoxModelObject* repaintContainer) { - InlineFlowBox* firstBox = firstLineBox(); + return SVGRenderBase::clippedOverflowRectForRepaint(this, repaintContainer); +} - RootInlineBox* rootBox = firstBox ? firstBox->root() : 0; - RenderBox* object = rootBox ? rootBox->block() : 0; +void RenderSVGInline::computeRectForRepaint(RenderBoxModelObject* repaintContainer, IntRect& repaintRect, bool fixed) +{ + SVGRenderBase::computeRectForRepaint(this, repaintContainer, repaintRect, fixed); +} + +void RenderSVGInline::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool useTransforms, bool fixed, TransformState& transformState) const +{ + SVGRenderBase::mapLocalToContainer(this, repaintContainer, useTransforms, fixed, transformState); +} +void RenderSVGInline::absoluteQuads(Vector<FloatQuad>& quads) +{ + const RenderObject* object = findTextRootObject(this); if (!object) return; - int xRef = object->x(); - int yRef = object->y(); - - for (InlineFlowBox* curr = firstBox; curr; curr = curr->nextLineBox()) { - FloatRect rect(xRef + curr->x(), yRef + curr->y(), curr->width(), curr->height()); - quads.append(localToAbsoluteQuad(rect)); - } + FloatRect textBoundingBox = object->strokeBoundingBox(); + for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox()) + quads.append(localToAbsoluteQuad(FloatRect(textBoundingBox.x() + box->x(), textBoundingBox.y() + box->y(), box->width(), box->height()))); } + } #endif // ENABLE(SVG) |