void SVGInlineTextBox::paintDecoration(GraphicsContext& context, TextDecoration decoration, const SVGTextFragment& fragment) { if (renderer().style().textDecorationsInEffect() == TextDecorationNone) return; // Find out which render style defined the text-decoration, as its fill/stroke properties have to be used for drawing instead of ours. auto& decorationRenderer = findRendererDefininingTextDecoration(parent()); const RenderStyle& decorationStyle = decorationRenderer.style(); if (decorationStyle.visibility() == HIDDEN) return; const SVGRenderStyle& svgDecorationStyle = decorationStyle.svgStyle(); bool hasDecorationFill = svgDecorationStyle.hasFill(); bool hasVisibleDecorationStroke = svgDecorationStyle.hasVisibleStroke(); if (hasDecorationFill) { m_paintingResourceMode = ApplyToFillMode; paintDecorationWithStyle(context, decoration, fragment, decorationRenderer); } if (hasVisibleDecorationStroke) { m_paintingResourceMode = ApplyToStrokeMode; paintDecorationWithStyle(context, decoration, fragment, decorationRenderer); } }
void SVGInlineTextBox::paintDecoration(GraphicsContext* context, ETextDecoration decoration, const SVGTextFragment& fragment) { if (textRenderer()->style()->textDecorationsInEffect() == TDNONE) return; // Find out which render style defined the text-decoration, as its fill/stroke properties have to be used for drawing instead of ours. RenderObject* decorationRenderer = findRenderObjectDefininingTextDecoration(parent()); RenderStyle* decorationStyle = decorationRenderer->style(); ASSERT(decorationStyle); if (decorationStyle->visibility() == HIDDEN) return; const SVGRenderStyle* svgDecorationStyle = decorationStyle->svgStyle(); ASSERT(svgDecorationStyle); bool hasDecorationFill = svgDecorationStyle->hasFill(); bool hasDecorationStroke = svgDecorationStyle->hasStroke(); if (hasDecorationFill) { m_paintingResourceMode = ApplyToFillMode; paintDecorationWithStyle(context, decoration, fragment, decorationRenderer); } if (hasDecorationStroke) { m_paintingResourceMode = ApplyToStrokeMode; paintDecorationWithStyle(context, decoration, fragment, decorationRenderer); } }