Index: Source/core/rendering/svg/RenderSVGText.cpp |
diff --git a/Source/core/rendering/svg/RenderSVGText.cpp b/Source/core/rendering/svg/RenderSVGText.cpp |
index 720966329a093b51b6c5cebac0b4e98b739a5bb0..697cc3a1c0c801bfce74130fa86883ac963d5372 100644 |
--- a/Source/core/rendering/svg/RenderSVGText.cpp |
+++ b/Source/core/rendering/svg/RenderSVGText.cpp |
@@ -29,6 +29,7 @@ |
#include "core/rendering/svg/RenderSVGText.h" |
#include "core/editing/PositionWithAffinity.h" |
+#include "core/paint/SVGTextPainter.h" |
#include "core/rendering/HitTestRequest.h" |
#include "core/rendering/HitTestResult.h" |
#include "core/rendering/PaintInfo.h" |
@@ -51,7 +52,6 @@ |
#include "platform/fonts/SimpleFontData.h" |
#include "platform/geometry/FloatQuad.h" |
#include "platform/geometry/TransformState.h" |
-#include "platform/graphics/GraphicsContextStateSaver.h" |
namespace blink { |
@@ -467,24 +467,7 @@ void RenderSVGText::absoluteQuads(Vector<FloatQuad>& quads, bool* wasFixed) cons |
void RenderSVGText::paint(PaintInfo& paintInfo, const LayoutPoint&) |
{ |
- if (paintInfo.phase != PaintPhaseForeground |
- && paintInfo.phase != PaintPhaseSelection) |
- return; |
- |
- PaintInfo blockInfo(paintInfo); |
- GraphicsContextStateSaver stateSaver(*blockInfo.context, false); |
- const AffineTransform& localTransform = localToParentTransform(); |
- if (!localTransform.isIdentity()) { |
- stateSaver.save(); |
- blockInfo.applyTransform(localTransform, false); |
- } |
- RenderBlock::paint(blockInfo, LayoutPoint()); |
- |
- // Paint the outlines, if any |
- if (paintInfo.phase == PaintPhaseForeground) { |
- blockInfo.phase = PaintPhaseSelfOutline; |
- RenderBlock::paint(blockInfo, LayoutPoint()); |
- } |
+ SVGTextPainter(*this).paint(paintInfo); |
} |
FloatRect RenderSVGText::strokeBoundingBox() const |