Index: Source/core/rendering/svg/RenderSVGResourceMarker.cpp |
diff --git a/Source/core/rendering/svg/RenderSVGResourceMarker.cpp b/Source/core/rendering/svg/RenderSVGResourceMarker.cpp |
index d338016966fc9792ba3772d459d14c450716b86d..b2700df79a645e0f6d85308f3be76f5c08badb97 100644 |
--- a/Source/core/rendering/svg/RenderSVGResourceMarker.cpp |
+++ b/Source/core/rendering/svg/RenderSVGResourceMarker.cpp |
@@ -115,17 +115,21 @@ float RenderSVGResourceMarker::angle() const |
return angle; |
} |
-AffineTransform RenderSVGResourceMarker::markerTransformation(const FloatPoint& origin, float autoAngle, float strokeWidth) const |
+AffineTransform RenderSVGResourceMarker::markerTransformation(const FloatPoint& origin, float autoAngle, float strokeWidth, bool isStartMarker) const |
{ |
SVGMarkerElement* marker = toSVGMarkerElement(element()); |
ASSERT(marker); |
float markerAngle = angle(); |
bool useStrokeWidth = marker->markerUnits()->currentValue()->enumValue() == SVGMarkerUnitsStrokeWidth; |
- |
+ if (markerAngle == -1) { |
+ markerAngle = autoAngle; |
+ if (isStartMarker && marker->orientType()->currentValue()->enumValue() == SVGMarkerOrientAutoStartReverse) |
+ markerAngle += 180; |
fs
2014/09/09 12:18:21
I'm curious if this (adjustment) would be nicer in
|
+ } |
AffineTransform transform; |
transform.translate(origin.x(), origin.y()); |
- transform.rotate(markerAngle == -1 ? autoAngle : markerAngle); |
+ transform.rotate(markerAngle); |
transform = markerContentTransformation(transform, referencePoint(), useStrokeWidth ? strokeWidth : -1); |
return transform; |
} |