X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fsnap.cpp;h=09cdbbaba9571933b5af33eea4d3a352e8bd64f0;hb=9e973c4fb2183b877bb600a7e9c75e93b3e7d6d1;hp=46d043ec17e46b681b755268dd1a6e1883e602bc;hpb=6a69102a7dd02614f36aa17fb2f1ecd6cdb09d8a;p=inkscape.git diff --git a/src/snap.cpp b/src/snap.cpp index 46d043ec1..09cdbbaba 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -432,7 +432,13 @@ Inkscape::SnappedPoint SnapManager::_snapTransformed( dedicated_constraint = Inkscape::Snapper::ConstraintLine(origin, (*i) - origin); } else if (transformation_type == STRETCH) { // when non-uniform stretching { dedicated_constraint = Inkscape::Snapper::ConstraintLine((*i), component_vectors[dim]); - } // else: leave the original constraint, e.g. for constrained translation and skewing + } else if (transformation_type == TRANSLATION) { + // When doing a constrained translation, all points will move in the same direction, i.e. + // either horizontally or vertically. The lines along which they move are therefore all + // parallel, but might not be colinear. Therefore we will have to set the point through + // which the constraint-line runs here, for each point individually. + dedicated_constraint.setPoint(*i); + } // else: leave the original constraint, e.g. for skewing if (transformation_type == SCALE && !uniform) { g_warning("Non-uniform constrained scaling is not supported!"); }