From 5a0f38c94489c344e66b0a4441668ea02e3361d8 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Tue, 4 Oct 2016 17:32:38 +0200 Subject: Fix scaling bug (bzr r15017.1.37) --- src/live_effects/lpe-measure-line.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/live_effects/lpe-measure-line.cpp b/src/live_effects/lpe-measure-line.cpp index 6e77931b0..57e67ab3a 100644 --- a/src/live_effects/lpe-measure-line.cpp +++ b/src/live_effects/lpe-measure-line.cpp @@ -541,6 +541,9 @@ LPEMeasureLine::doBeforeEffect (SPLPEItem const* lpeitem) SPPath *sp_path = dynamic_cast(splpeitem); if (sp_path) { Geom::PathVector pathvector = sp_path->get_original_curve()->get_pathvector(); + SPDocument * doc = SP_ACTIVE_DOCUMENT; + Geom::Affine affinetransform = i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(doc->getRoot())); + pathvector *= affinetransform; if (arrows_outside) { createArrowMarker((Glib::ustring)"ArrowDINout-start"); createArrowMarker((Glib::ustring)"ArrowDINout-end"); @@ -618,9 +621,8 @@ LPEMeasureLine::doBeforeEffect (SPLPEItem const* lpeitem) } else { pos = pos - Point::polar(angle_cross, (position + text_top_bottom) - fontsize/2.5); } - if (!scale_insensitive) { - Geom::Affine affinetransform = i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(desktop->doc()->getRoot())); - length *= (affinetransform.expansionX() + affinetransform.expansionY()) / 2.0; + if (scale_insensitive) { + length *= (affinetransform.inverse().expansionX() + affinetransform.inverse().expansionY()) / 2.0; } createTextLabel(pos, length, angle, remove); bool overflow = false; -- cgit v1.2.3