| Index: Source/core/rendering/svg/SVGInlineTextBox.cpp
|
| diff --git a/Source/core/rendering/svg/SVGInlineTextBox.cpp b/Source/core/rendering/svg/SVGInlineTextBox.cpp
|
| index e700ac2ee60fccae4b9b395b465c6340992dd16a..f0d06bcca75386bf3dc670a9a075059fa6b9783d 100644
|
| --- a/Source/core/rendering/svg/SVGInlineTextBox.cpp
|
| +++ b/Source/core/rendering/svg/SVGInlineTextBox.cpp
|
| @@ -325,16 +325,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.
|
|
|