Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1036)

Unified Diff: Source/core/rendering/svg/RenderSVGShape.cpp

Issue 655263002: Let the paint-server client compute and pass any additional transform (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/svg/RenderSVGShape.cpp
diff --git a/Source/core/rendering/svg/RenderSVGShape.cpp b/Source/core/rendering/svg/RenderSVGShape.cpp
index aa5b21d9f0544606726d6dd23fc0bf153708d34f..6e0a737b53d824451e27ba3af3238187577a45c8 100644
--- a/Source/core/rendering/svg/RenderSVGShape.cpp
+++ b/Source/core/rendering/svg/RenderSVGShape.cpp
@@ -236,14 +236,18 @@ void RenderSVGShape::paint(PaintInfo& paintInfo, const LayoutPoint&)
if (svgStyle.hasVisibleStroke()) {
GraphicsContextStateSaver stateSaver(*childPaintInfo.context, false);
AffineTransform nonScalingTransform;
+ const AffineTransform* additionalPaintServerTransform = 0;
if (hasNonScalingStroke()) {
- AffineTransform nonScalingTransform = nonScalingStrokeTransform();
+ nonScalingTransform = nonScalingStrokeTransform();
if (!setupNonScalingStrokeContext(nonScalingTransform, stateSaver))
return;
+
+ // Non-scaling stroke needs to reset the transform back to the host transform.
+ additionalPaintServerTransform = &nonScalingTransform;
}
- if (!SVGRenderSupport::updateGraphicsContext(stateSaver, style(), *this, ApplyToStrokeMode))
+ if (!SVGRenderSupport::updateGraphicsContext(stateSaver, style(), *this, ApplyToStrokeMode, additionalPaintServerTransform))
break;
strokeShape(childPaintInfo.context);
}

Powered by Google App Engine
This is Rietveld 408576698