summaryrefslogtreecommitdiff
path: root/svgio/source/svgreader/svgmasknode.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svgio/source/svgreader/svgmasknode.cxx')
-rw-r--r--svgio/source/svgreader/svgmasknode.cxx17
1 files changed, 16 insertions, 1 deletions
diff --git a/svgio/source/svgreader/svgmasknode.cxx b/svgio/source/svgreader/svgmasknode.cxx
index 26e28f5e42a1..37459afd7cd9 100644
--- a/svgio/source/svgreader/svgmasknode.cxx
+++ b/svgio/source/svgreader/svgmasknode.cxx
@@ -197,7 +197,9 @@ namespace svgio
}
}
- void SvgMaskNode::apply(drawinglayer::primitive2d::Primitive2DSequence& rTarget) const
+ void SvgMaskNode::apply(
+ drawinglayer::primitive2d::Primitive2DSequence& rTarget,
+ const basegfx::B2DHomMatrix* pTransform) const
{
if(rTarget.hasElements() && Display_none != getDisplay())
{
@@ -259,6 +261,19 @@ namespace svgio
aMaskTarget = drawinglayer::primitive2d::Primitive2DSequence(&xTransform, 1);
}
+ else // userSpaceOnUse
+ {
+ // #i124852#
+ if(pTransform)
+ {
+ const drawinglayer::primitive2d::Primitive2DReference xTransform(
+ new drawinglayer::primitive2d::TransformPrimitive2D(
+ *pTransform,
+ aMaskTarget));
+
+ aMaskTarget = drawinglayer::primitive2d::Primitive2DSequence(&xTransform, 1);
+ }
+ }
// embed content to a ModifiedColorPrimitive2D since the definitions
// how content is used as alpha is special for Svg