diff options
| author | Marc Jeanmougin <marcjeanmougin@free.fr> | 2017-10-05 09:01:39 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marcjeanmougin@free.fr> | 2017-10-05 09:01:39 +0000 |
| commit | 577a34f67d1d3bb523c362373efbbe7d00c1afab (patch) | |
| tree | ba088c3888a7f1b3809d2e5c40f2dba0f6dc8fa9 /src/knotholder.cpp | |
| parent | Merge branch 'interp_att_ext' of gitlab.com:Moini/inkscape (diff) | |
| parent | Rename object-edit.cpp to what it really is (diff) | |
| download | inkscape-577a34f67d1d3bb523c362373efbbe7d00c1afab.tar.gz inkscape-577a34f67d1d3bb523c362373efbbe7d00c1afab.zip | |
Merge branch 'edit-clip-object' of gitlab.com:stfacc/inkscape
Diffstat (limited to 'src/knotholder.cpp')
| -rw-r--r-- | src/knotholder.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/knotholder.cpp b/src/knotholder.cpp index 29054bcd9..5fbccf52d 100644 --- a/src/knotholder.cpp +++ b/src/knotholder.cpp @@ -56,7 +56,8 @@ KnotHolder::KnotHolder(SPDesktop *desktop, SPItem *item, SPKnotHolderReleasedFun sizeUpdatedConn(), released(relhandler), local_change(FALSE), - dragging(false) + dragging(false), + _edit_transform(Geom::identity()) { if (!desktop || !item) { g_print ("Error! Throw an exception, please!\n"); @@ -79,6 +80,12 @@ KnotHolder::~KnotHolder() { sizeUpdatedConn.disconnect(); } +void +KnotHolder::setEditTransform(Geom::Affine edit_transform) +{ + _edit_transform = edit_transform; +} + void KnotHolder::updateControlSizes() { ControlManager &mgr = ControlManager::getManager(); @@ -230,8 +237,8 @@ KnotHolder::knot_moved_handler(SPKnot *knot, Geom::Point const &p, guint state) for(std::list<KnotHolderEntity *>::iterator i = this->entity.begin(); i != this->entity.end(); ++i) { KnotHolderEntity *e = *i; if (e->knot == knot) { - Geom::Point const q = p * item->i2dt_affine().inverse(); - e->knot_set(q, e->knot->drag_origin * item->i2dt_affine().inverse(), state); + Geom::Point const q = p * item->i2dt_affine().inverse() * _edit_transform.inverse(); + e->knot_set(q, e->knot->drag_origin * item->i2dt_affine().inverse() * _edit_transform.inverse(), state); break; } } |
