From: dvlierop2 Date: Sun, 9 Aug 2009 12:11:19 +0000 (+0000) Subject: When translating too many items, then don't use the bbox of the selection as a whole... X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=5a214da64dd9bc6ac9aaee732ed0742666bb05f0;p=inkscape.git When translating too many items, then don't use the bbox of the selection as a whole but instead use the closest corner of one of the individual bboxes instead. --- diff --git a/src/seltrans.cpp b/src/seltrans.cpp index 8f060725b..359038527 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -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); }