summaryrefslogtreecommitdiffstats
path: root/src/knotholder.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2017-11-03 00:10:02 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2017-11-03 00:10:02 +0000
commitd2df0412f728dd5bb54537dfdfe7c35b34d40e0e (patch)
treee2703384779e83312c456399999997fcc289c5cf /src/knotholder.cpp
parentMerge branch 'master' into powerpencil (diff)
parentchange assignment to equality (diff)
downloadinkscape-d2df0412f728dd5bb54537dfdfe7c35b34d40e0e.tar.gz
inkscape-d2df0412f728dd5bb54537dfdfe7c35b34d40e0e.zip
Merge branch 'master' into powerpencil
Diffstat (limited to 'src/knotholder.cpp')
-rw-r--r--src/knotholder.cpp13
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;
}
}