| 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;
|
| + }
|
| 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;
|
| }
|
|
|