diff options
| author | su_v <suv-sf@users.sourceforge.net> | 2014-09-19 19:35:05 +0000 |
|---|---|---|
| committer | ~suv <suv-sf@users.sourceforge.net> | 2014-09-19 19:35:05 +0000 |
| commit | 4bf7c02345f9933ee21b8df59a2f000bb15c4871 (patch) | |
| tree | c0f4fc3670f22c3bcfcb9417b9b5a6b8eadcff76 /src | |
| parent | revbump meta port (start with 100 like the other local ports) (diff) | |
| parent | scale clip or mask upon unit change (Bug 1287288) (diff) | |
| download | inkscape-4bf7c02345f9933ee21b8df59a2f000bb15c4871.tar.gz inkscape-4bf7c02345f9933ee21b8df59a2f000bb15c4871.zip | |
update to trunk (r13561)
(bzr r13506.1.103)
Diffstat (limited to 'src')
| -rw-r--r-- | src/color-profile.cpp | 1 | ||||
| -rw-r--r-- | src/sp-item-group.cpp | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/color-profile.cpp b/src/color-profile.cpp index aa0750c00..6f335b590 100644 --- a/src/color-profile.cpp +++ b/src/color-profile.cpp @@ -19,6 +19,7 @@ #include <gtk/gtk.h> #endif // DEBUG_LCMS +#include <unistd.h> #include <cstring> #include <string> #include <io/sys.h> diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 5936cfbe5..a24056630 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -677,6 +677,18 @@ void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p, bo item->doWriteTransform(item->getRepr(), tAff, NULL, true); } else { // used for other import + 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()) { + item = SP_ITEM(SP_ITEM(o)->mask_ref->getObject()->firstChild()); + } + 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); + } SP_GROUP(o)->scaleChildItemsRec(sc, p, false); } } else { |
