diff options
| author | Stefano Facchini <stefano.facchini@gmail.com> | 2017-10-01 13:27:03 +0000 |
|---|---|---|
| committer | Stefano Facchini <stefano.facchini@gmail.com> | 2017-10-01 13:40:38 +0000 |
| commit | d4432a4aaf3fb615d9808f53557a4283436bf035 (patch) | |
| tree | 2a9cc5ae46c673d092abdaba399133659f0cfc27 /src/knotholder.cpp | |
| parent | A little styling tweak to a LPE expander (diff) | |
| download | inkscape-d4432a4aaf3fb615d9808f53557a4283436bf035.tar.gz inkscape-d4432a4aaf3fb615d9808f53557a4283436bf035.zip | |
Fix the editing of clipping and masking objects
By passing along an edit_transform matrix, as done for clipping paths.
Cleanups:
- remove some unused methods
- use member initialization
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; } } |
