diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/snap.cpp | 9 | ||||
| -rw-r--r-- | src/snapped-point.cpp | 4 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/snap.cpp b/src/snap.cpp index 8d3103122..30fc5387e 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -1456,7 +1456,14 @@ void SnapManager::_displaySnapsource(Inkscape::SnapCandidatePoint const &p) cons void SnapManager::keepClosestPointOnly(std::vector<Inkscape::SnapCandidatePoint> &points, const Geom::Point &reference) const { - if (points.size() < 2) return; + if (points.size() == 0) { + return; + } + + if (points.size() == 1) { + points.front().setSourceNum(-1); // Just in case + return; + } Inkscape::SnapCandidatePoint closest_point = Inkscape::SnapCandidatePoint(Geom::Point(Geom::infinity(), Geom::infinity()), Inkscape::SNAPSOURCE_UNDEFINED, Inkscape::SNAPTARGET_UNDEFINED); Geom::Coord closest_dist = Geom::infinity(); diff --git a/src/snapped-point.cpp b/src/snapped-point.cpp index 2db3d62e4..a777e4dc0 100644 --- a/src/snapped-point.cpp +++ b/src/snapped-point.cpp @@ -131,6 +131,10 @@ bool Inkscape::SnappedPoint::isOtherSnapBetter(Inkscape::SnappedPoint const &oth return false; } + if (!getSnapped() && other_one.getSnapped()) { + return true; + } + double dist_other = other_one.getSnapDistance(); double dist_this = getSnapDistance(); |
