summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 1397718)
raw | patch | inline | side by side (parent: 1397718)
author | dvlierop2 <dvlierop2@users.sourceforge.net> | |
Wed, 21 Nov 2007 19:23:55 +0000 (19:23 +0000) | ||
committer | dvlierop2 <dvlierop2@users.sourceforge.net> | |
Wed, 21 Nov 2007 19:23:55 +0000 (19:23 +0000) |
src/selection.cpp | patch | blob | history | |
src/seltrans.cpp | patch | blob | history | |
src/sp-item-group.cpp | patch | blob | history |
diff --git a/src/selection.cpp b/src/selection.cpp
index e4c628d9e83df79df803682985e01b32e00e9184..68a9a2cd92e719ebd151cbbcb78725a113452743 100644 (file)
--- a/src/selection.cpp
+++ b/src/selection.cpp
/**
* Compute the list of points in the selection that are to be considered for snapping.
- * This includes all special points of each item in the selection, except path nodes
*/
std::vector<NR::Point> Selection::getSnapPoints(bool includeItemCenter) const {
GSList const *items = const_cast<Selection *>(this)->itemList();
std::vector<NR::Point> p;
for (GSList const *iter = items; iter != NULL; iter = iter->next) {
- // getSnapPoints() is only being used in the selector tool, which should
- // not snap path nodes. Only the node tool should snap those.
SPItem *this_item = SP_ITEM(iter->data);
- if (!SP_IS_PATH(this_item)) {
- // Only snap if we don't have a path at hand
- // (Same check occurs in sp-item-group)
- sp_item_snappoints(this_item, false, SnapPointsIter(p));
- }
+ sp_item_snappoints(this_item, false, SnapPointsIter(p));
//Include the transformation origin for snapping
//For a group only the group's origin is considered
if (includeItemCenter) {
diff --git a/src/seltrans.cpp b/src/seltrans.cpp
index 512d2c0ca30e3d6c04fcf1aba7e950d4a7004d46..785cf7d60f3f8dc0fc233aa13ffcece98f7ee25c 100644 (file)
--- a/src/seltrans.cpp
+++ b/src/seltrans.cpp
@@ -259,18 +259,17 @@ void Inkscape::SelTrans::grab(NR::Point const &p, gdouble x, gdouble y, bool sho
_point = p;
- // The selector tool should snap the bbox and the special snappoints, but not path nodes
+ // The selector tool should snap the bbox, special snappoints, and path nodes
// (The special points are the handles, center, rotation axis, font baseline, ends of spiral, etc.)
// First, determine the bounding box for snapping ...
_bbox = selection->bounds(_snap_bbox_type);
_approximate_bbox = selection->bounds(SPItem::APPROXIMATE_BBOX); // Used for correctly scaling the strokewidth
-
- // Next, get all special points for snapping
+ // Next, get all points to consider for snapping
SnapManager const &m = _desktop->namedview->snap_manager;
- _snap_points = selection->getSnapPoints(m.getIncludeItemCenter()); // Excludes path nodes
- std::vector<NR::Point> snap_points_hull = selection->getSnapPointsConvexHull(); // Includes path nodes
+ _snap_points = selection->getSnapPoints(m.getIncludeItemCenter());
+ std::vector<NR::Point> snap_points_hull = selection->getSnapPointsConvexHull();
if (_snap_points.size() > 100) {
/* Snapping a huge number of nodes will take way too long, so limit the number of snappable nodes
An average user would rarely ever try to snap such a large number of nodes anyway, because
diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp
index f1035e9eef6028a234a0eac680c841f90ed6808a..cabc7b26a754e173cb6b9c2dee5eb37443e58052 100644 (file)
--- a/src/sp-item-group.cpp
+++ b/src/sp-item-group.cpp
o != NULL;
o = SP_OBJECT_NEXT(o))
{
- if (SP_IS_ITEM(o) && !SP_IS_PATH(o)) {
- // getSnapPoints() and sp_group_snappoints are only being used in the selector tool,
- // which should not snap path nodes. Only the node tool should snap those.
+ if (SP_IS_ITEM(o)) {
sp_item_snappoints(SP_ITEM(o), false, p);
}
}