summaryrefslogtreecommitdiffstats
path: root/src/sp-shape.cpp
diff options
context:
space:
mode:
authorDiederik van Lierop <mail@diedenrezi.nl>2012-12-08 20:29:18 +0000
committerDiederik van Lierop <mail@diedenrezi.nl>2012-12-08 20:29:18 +0000
commitd0d3e7f80dafc80e47c9a95bf31c14283010a2c2 (patch)
treea2705cd0294898538f6d9627e758262a1d1dadaf /src/sp-shape.cpp
parentGerman translation update (diff)
downloadinkscape-d0d3e7f80dafc80e47c9a95bf31c14283010a2c2.tar.gz
inkscape-d0d3e7f80dafc80e47c9a95bf31c14283010a2c2.zip
Selector tool: improve responsiveness for snapping a path's internal intersections (was unbearable already for paths having 20+ segments)
(bzr r11937)
Diffstat (limited to 'src/sp-shape.cpp')
-rw-r--r--src/sp-shape.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/sp-shape.cpp b/src/sp-shape.cpp
index ad73f226c..d5556ba9e 100644
--- a/src/sp-shape.cpp
+++ b/src/sp-shape.cpp
@@ -1193,10 +1193,10 @@ void SPShape::sp_shape_snappoints(SPItem const *item, std::vector<Inkscape::Snap
// Find the internal intersections of each path and consider these for snapping
// (using "Method 1" as described in Inkscape::ObjectSnapper::_collectNodes())
- if (snapprefs->isTargetSnappable(Inkscape::SNAPTARGET_PATH_INTERSECTION)) {
+ if (snapprefs->isTargetSnappable(Inkscape::SNAPTARGET_PATH_INTERSECTION) || snapprefs->isSourceSnappable(Inkscape::SNAPSOURCE_PATH_INTERSECTION)) {
Geom::Crossings cs;
try {
- cs = self_crossings(*path_it);
+ cs = self_crossings(*path_it); // This can be slow!
if (!cs.empty()) { // There might be multiple intersections...
for (Geom::Crossings::const_iterator i = cs.begin(); i != cs.end(); ++i) {
Geom::Point p_ix = (*path_it).pointAt((*i).ta);