summaryrefslogtreecommitdiffstats
path: root/src/selection.cpp
diff options
context:
space:
mode:
authorDiederik van Lierop <mailat-signdiedenrezidotnl>2010-05-21 21:46:07 +0000
committerDiederik van Lierop <mailat-signdiedenrezidotnl>2010-05-21 21:46:07 +0000
commit6e91f64f6479045c9d2fd7702879b73d5988faa2 (patch)
tree839b0b991345d107e20b1b83811d156d81b1d219 /src/selection.cpp
parentTranslations. inkscape.pot and French translation update. (diff)
downloadinkscape-6e91f64f6479045c9d2fd7702879b73d5988faa2.tar.gz
inkscape-6e91f64f6479045c9d2fd7702879b73d5988faa2.zip
- "Snap nodes or handles" button now also includes smooth nodes
- Improved snap tooltips (bzr r9440)
Diffstat (limited to 'src/selection.cpp')
-rw-r--r--src/selection.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/selection.cpp b/src/selection.cpp
index 1e14591fa..96c66e0c5 100644
--- a/src/selection.cpp
+++ b/src/selection.cpp
@@ -424,14 +424,15 @@ boost::optional<Geom::Point> Selection::center() const {
}
/**
- * Compute the list of points in the selection that are to be considered for snapping.
+ * Compute the list of points in the selection that are to be considered for snapping from.
*/
std::vector<Inkscape::SnapCandidatePoint> Selection::getSnapPoints(SnapPreferences const *snapprefs) const {
GSList const *items = const_cast<Selection *>(this)->itemList();
SnapPreferences snapprefs_dummy = *snapprefs; // create a local copy of the snapping prefs
snapprefs_dummy.setIncludeItemCenter(false); // locally disable snapping to the item center
-
+ snapprefs_dummy.setSnapToItemNode(true); // consider any type of nodes as a snap source
+ snapprefs_dummy.setSnapSmoothNodes(true); // i.e. disregard the smooth / cusp node preference
std::vector<Inkscape::SnapCandidatePoint> p;
for (GSList const *iter = items; iter != NULL; iter = iter->next) {
SPItem *this_item = SP_ITEM(iter->data);
@@ -446,13 +447,18 @@ std::vector<Inkscape::SnapCandidatePoint> Selection::getSnapPoints(SnapPreferenc
return p;
}
-
+// TODO: both getSnapPoints and getSnapPointsConvexHull are called, subsequently. Can we do this more efficient?
+// Why do we need to include the transformation center in one case and not the other?
std::vector<Inkscape::SnapCandidatePoint> Selection::getSnapPointsConvexHull(SnapPreferences const *snapprefs) const {
GSList const *items = const_cast<Selection *>(this)->itemList();
+ SnapPreferences snapprefs_dummy = *snapprefs; // create a local copy of the snapping prefs
+ snapprefs_dummy.setSnapToItemNode(true); // consider any type of nodes as a snap source
+ snapprefs_dummy.setSnapSmoothNodes(true); // i.e. disregard the smooth / cusp node preference
+
std::vector<Inkscape::SnapCandidatePoint> p;
for (GSList const *iter = items; iter != NULL; iter = iter->next) {
- sp_item_snappoints(SP_ITEM(iter->data), p, snapprefs);
+ sp_item_snappoints(SP_ITEM(iter->data), p, &snapprefs_dummy);
}
std::vector<Inkscape::SnapCandidatePoint> pHull;