Code

When translating too many items, then don't use the bbox of the selection as a whole...
authordvlierop2 <dvlierop2@users.sourceforge.net>
Sun, 9 Aug 2009 12:11:19 +0000 (12:11 +0000)
committerdvlierop2 <dvlierop2@users.sourceforge.net>
Sun, 9 Aug 2009 12:11:19 +0000 (12:11 +0000)
src/seltrans.cpp

index 8f060725bb155a080e0c21a4bd38bed8bc93c812..3590385273223a460ccbad3b1417ab8df4e4b153 100644 (file)
@@ -333,9 +333,9 @@ void Inkscape::SelTrans::grab(Geom::Point const &p, gdouble x, gdouble y, bool s
         // stroke width. (see get_scale_transform_with_stroke()). This however is currently only implemented for a single bbox.
         // That's why we have both _bbox_points_for_translating and _bbox_points.
         getBBoxPoints(selection->bounds(_snap_bbox_type), &_bbox_points, false, true, emp, mp);
-        if ((_items.size() > 0) && (_items.size() < 50)) { // more than 50 items will produce at least 200 bbox points, which might
-            // make Inkscape crawl (see the comment a few lines above). In that case we will use the bbox of the selection
-            // as a whole
+        if (((_items.size() > 0) && (_items.size() < 50)) || prefs->getBool("/options/snapclosestonly/value", false)) {
+            // More than 50 items will produce at least 200 bbox points, which might make Inkscape crawl
+            // (see the comment a few lines above). In that case we will use the bbox of the selection as a whole
             for (unsigned i = 0; i < _items.size(); i++) {
                 getBBoxPoints(sp_item_bbox_desktop(_items[i], _snap_bbox_type), &_bbox_points_for_translating, false, true, emp, mp);
             }