diff options
| author | Diederik van Lierop <mail@diedenrezi.nl> | 2014-07-05 13:23:33 +0000 |
|---|---|---|
| committer | Diederik van Lierop <mail@diedenrezi.nl> | 2014-07-05 13:23:33 +0000 |
| commit | c5a3e612c363f761171123cf62f65c85808c296e (patch) | |
| tree | f1769d7befc718be3542707145974fe2c91b873b /src | |
| parent | Fix pentool backspace bug. Thanks Jabier (diff) | |
| download | inkscape-c5a3e612c363f761171123cf62f65c85808c296e.tar.gz inkscape-c5a3e612c363f761171123cf62f65c85808c296e.zip | |
Fix regression that prevented snapping back to original location, caused by rev. 13333
Fixed bugs:
- https://launchpad.net/bugs/1337170
(bzr r13446)
Diffstat (limited to 'src')
| -rw-r--r-- | src/seltrans.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/seltrans.cpp b/src/seltrans.cpp index d6f31f073..d16e02e42 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -377,12 +377,6 @@ void Inkscape::SelTrans::transform(Geom::Affine const &rel_affine, Geom::Point c g_return_if_fail(_grabbed); g_return_if_fail(!_empty); - // E.g. scaling a perfectly vertical line in horizontal direction will not work, and will produce an identity affine - - if (rel_affine.isIdentity()) { - return; - } - Geom::Affine const affine( Geom::Translate(-norm) * rel_affine * Geom::Translate(norm) ); if (_show == SHOW_CONTENT) { @@ -1327,6 +1321,16 @@ void Inkscape::SelTrans::stretch(SPSelTransHandle const &/*handle*/, Geom::Point void Inkscape::SelTrans::scale(Geom::Point &/*pt*/, guint /*state*/) { + // E.g. scaling a perfectly vertical line in horizontal direction will not work, and will produce an identity affine + // Applying a transformation is useless, so we will not attempt to do so because this might trigger other bugs + // (see https://bugs.launchpad.net/inkscape/+bug/1256597) + // We check for this here and not in transform because identity transformations are perfectly fine for for example + // translations (e.g. a translation of (0,0), which occurs when snapping a point back to its original location) + + if (_absolute_affine.isIdentity()) { + return; + } + transform(_absolute_affine, Geom::Point(0, 0)); // we have already accounted for origin, so pass 0,0 } |
