| Index: Source/core/rendering/svg/SVGInlineTextBox.cpp
|
| diff --git a/Source/core/rendering/svg/SVGInlineTextBox.cpp b/Source/core/rendering/svg/SVGInlineTextBox.cpp
|
| index 8731b0c493186eea9fbff000bb0f91b141757b3d..0a08afbed09a9e873c616604df0f4f3a0d79d424 100644
|
| --- a/Source/core/rendering/svg/SVGInlineTextBox.cpp
|
| +++ b/Source/core/rendering/svg/SVGInlineTextBox.cpp
|
| @@ -326,16 +326,29 @@ void SVGInlineTextBox::paint(PaintInfo& paintInfo, const LayoutPoint&, LayoutUni
|
| if (decorations & TextDecorationOverline)
|
| paintDecoration(paintInfo.context, TextDecorationOverline, fragment);
|
|
|
| - // Fill text
|
| - if (hasFill) {
|
| - m_paintingResourceMode = ApplyToFillMode | ApplyToTextMode;
|
| - paintText(paintInfo.context, style, selectionStyle, fragment, hasSelection, paintSelectedTextOnly);
|
| - }
|
| -
|
| - // Stroke text
|
| - if (hasVisibleStroke) {
|
| - m_paintingResourceMode = ApplyToStrokeMode | ApplyToTextMode;
|
| - paintText(paintInfo.context, style, selectionStyle, fragment, hasSelection, paintSelectedTextOnly);
|
| + for (int i = 0; i < 3; i++) {
|
| + switch (svgStyle->paintOrderType(i)) {
|
| + case PT_FILL:
|
| + // Fill text
|
| + if (hasFill) {
|
| + m_paintingResourceMode = ApplyToFillMode | ApplyToTextMode;
|
| + paintText(paintInfo.context, style, selectionStyle, fragment, hasSelection, paintSelectedTextOnly);
|
| + }
|
| + break;
|
| + case PT_STROKE:
|
| + // Stroke text
|
| + if (hasVisibleStroke) {
|
| + m_paintingResourceMode = ApplyToStrokeMode | ApplyToTextMode;
|
| + paintText(paintInfo.context, style, selectionStyle, fragment, hasSelection, paintSelectedTextOnly);
|
| + }
|
| + break;
|
| + case PT_MARKERS:
|
| + // Markers don't apply to text
|
| + break;
|
| + default:
|
| + ASSERT_NOT_REACHED();
|
| + break;
|
| + }
|
| }
|
|
|
| // Spec: Line-through should be drawn after the text is filled and stroked; thus, the line-through is rendered on top of the text.
|
|
|