From 873b50af1199fb8b1942d7cb5cb56ef0654dad35 Mon Sep 17 00:00:00 2001 From: bulia byak Date: Mon, 5 Mar 2007 21:30:04 +0000 Subject: fix by dvlierop2 for snapping bugs 1579556 and 1579587 (bzr r2557) --- src/seltrans.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/seltrans.cpp') diff --git a/src/seltrans.cpp b/src/seltrans.cpp index cd68399b0..067c64859 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -259,6 +259,9 @@ void Inkscape::SelTrans::grab(NR::Point const &p, gdouble x, gdouble y, bool sho _snap_points = selection->getSnapPointsConvexHull(); _bbox_points = selection->getBBoxPointsOuter(); + _bbox_4points = _bbox_points; + _bbox_4points.push_back(NR::Point(_bbox_points[0][NR::X], _bbox_points[1][NR::Y])); + _bbox_4points.push_back(NR::Point(_bbox_points[1][NR::X], _bbox_points[0][NR::Y])); gchar const *scale_origin = prefs_get_string_attribute("tools.select", "scale_origin"); bool const origin_on_bbox = (scale_origin == NULL || !strcmp(scale_origin, "bbox")); @@ -860,7 +863,7 @@ gboolean Inkscape::SelTrans::scaleRequest(NR::Point &pt, guint state) /* Scale aspect ratio is unlocked */ std::pair bb = m.freeSnapScale(Snapper::BBOX_POINT, - _bbox_points, + _bbox_4points, it, s, _origin); @@ -870,7 +873,7 @@ gboolean Inkscape::SelTrans::scaleRequest(NR::Point &pt, guint state) s, _origin); - /* Pick the snap that puts us closest to the original scale */ + /* Pick the snap that puts us closest to the original scale */ NR::Coord bd = bb.second ? fabs(NR::L2(NR::Point(bb.first[NR::X], bb.first[NR::Y])) - NR::L2(NR::Point(s[NR::X], s[NR::Y]))) @@ -1406,7 +1409,7 @@ void Inkscape::SelTrans::moveTo(NR::Point const &xy, guint state) /* Snap to things with no constraint */ s.push_back(m.freeSnapTranslation(Inkscape::Snapper::BBOX_POINT, - _bbox_points, it, dxy)); + _bbox_4points, it, dxy)); s.push_back(m.freeSnapTranslation(Inkscape::Snapper::SNAP_POINT, _snap_points, it, dxy)); } -- cgit v1.2.3