Code

Control when shift affects moving of handles. Applies patch from bug #245698.
authorjoncruz <joncruz@users.sourceforge.net>
Thu, 5 Mar 2009 06:20:24 +0000 (06:20 +0000)
committerjoncruz <joncruz@users.sourceforge.net>
Thu, 5 Mar 2009 06:20:24 +0000 (06:20 +0000)
src/nodepath.cpp

index a880baba26e175c59d61162c2b2a0e5d34f97046..bd8dffc4ec2b865c1cec55ad20e1dc54fc5c8300 100644 (file)
@@ -4055,8 +4055,8 @@ static void node_handle_moved(SPKnot *knot, Geom::Point const &p, guint state, g
         rnew.r = me->origin_radial.r;
     }
 
-    if (( n->type !=Inkscape::NodePath::NODE_CUSP || (state & GDK_SHIFT_MASK))
-        && rme.a != HUGE_VAL && rnew.a != HUGE_VAL && (fabs(rme.a - rnew.a) > 0.001 || n->type ==Inkscape::NodePath::NODE_SYMM)) {
+    if (( n->type !=Inkscape::NodePath::NODE_CUSP || (!n->dragging_out && (state & GDK_SHIFT_MASK)))
+        && (rme.a != HUGE_VAL) && (rnew.a != HUGE_VAL) && ((fabs(rme.a - rnew.a) > 0.001) || (n->type ==Inkscape::NodePath::NODE_SYMM))) {
         // rotate the other handle correspondingly, if both old and new angles exist and are not the same
         rother.a += rnew.a - rme.a;
         other->pos = Geom::Point(rother) + n->pos;