diff options
| author | Alvin Penner <penner@vaxxine.com> | 2013-12-17 23:01:44 +0000 |
|---|---|---|
| committer | apenner <penner@vaxxine.com> | 2013-12-17 23:01:44 +0000 |
| commit | 3b7a3bd5d820cb7c41fe99254129d6603a5e9ff2 (patch) | |
| tree | 62e6cc4de4ad2c0590bb50884f945efa612eee43 /src/seltrans.cpp | |
| parent | Check order (fixing bug 1219264 ?) (diff) | |
| download | inkscape-3b7a3bd5d820cb7c41fe99254129d6603a5e9ff2.tar.gz inkscape-3b7a3bd5d820cb7c41fe99254129d6603a5e9ff2.zip | |
modify transform behaviour for scaled stroke width, Preserved Transforms
(bzr r12852)
Diffstat (limited to 'src/seltrans.cpp')
| -rw-r--r-- | src/seltrans.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/seltrans.cpp b/src/seltrans.cpp index f961e309d..d1d39532c 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -1460,7 +1460,8 @@ Geom::Point Inkscape::SelTrans::_getGeomHandlePos(Geom::Point const &visual_hand // Calculate the absolute affine while taking into account the scaling of the stroke width Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool transform_stroke = prefs->getBool("/options/transform/stroke", true); - Geom::Affine abs_affine = get_scale_transform_for_uniform_stroke (*_bbox, _strokewidth, transform_stroke, + bool preserve = prefs->getBool("/options/preservetransform/value", false); + Geom::Affine abs_affine = get_scale_transform_for_uniform_stroke (*_bbox, _strokewidth, transform_stroke, preserve, new_bbox.min()[Geom::X], new_bbox.min()[Geom::Y], new_bbox.max()[Geom::X], new_bbox.max()[Geom::Y]); // Calculate the scaled geometrical bbox @@ -1499,15 +1500,17 @@ Geom::Point Inkscape::SelTrans::_calcAbsAffineDefault(Geom::Scale const default_ Geom::Point new_bbox_max = _visual_bbox->max() * abs_affine; bool transform_stroke = false; + bool preserve = false; gdouble strokewidth = 0; if ( _snap_bbox_type != SPItem::GEOMETRIC_BBOX) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); transform_stroke = prefs->getBool("/options/transform/stroke", true); + preserve = prefs->getBool("/options/preservetransform/value", false); strokewidth = _strokewidth; } - _absolute_affine = get_scale_transform_for_uniform_stroke (*_visual_bbox, strokewidth, transform_stroke, + _absolute_affine = get_scale_transform_for_uniform_stroke (*_visual_bbox, strokewidth, transform_stroke, preserve, new_bbox_min[Geom::X], new_bbox_min[Geom::Y], new_bbox_max[Geom::X], new_bbox_max[Geom::Y]); // return the new handle position |
