summaryrefslogtreecommitdiffstats
path: root/src/sp-item-group.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-item-group.cpp')
-rw-r--r--src/sp-item-group.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp
index a24056630..b65be8f22 100644
--- a/src/sp-item-group.cpp
+++ b/src/sp-item-group.cpp
@@ -680,7 +680,15 @@ void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p, bo
SPItem *item = NULL;
if (SP_ITEM(o)->clip_ref->getObject()) {
item = SP_ITEM(SP_ITEM(o)->clip_ref->getObject()->firstChild());
- } else if (SP_ITEM(o)->mask_ref->getObject()) {
+ }
+ if (item != NULL) {
+ Geom::Affine tdoc2dt = Geom::Scale(1, -1) * Geom::Translate(p); // re-create doc2dt()
+ Geom::Affine ti2doc = SP_ITEM(o)->i2doc_affine();
+ item->set_i2d_affine(ti2doc * sc * ti2doc.inverse() * tdoc2dt);
+ item->doWriteTransform(item->getRepr(), item->transform, NULL, true);
+ }
+ item = NULL;
+ if (SP_ITEM(o)->mask_ref->getObject()) {
item = SP_ITEM(SP_ITEM(o)->mask_ref->getObject()->firstChild());
}
if (item != NULL) {