From 458c1a2a8f34a342d2728b144592110a65b4c2d1 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Mon, 22 Aug 2011 22:27:25 +0200 Subject: Fix snap bug #816044 Fixed bugs: - https://launchpad.net/bugs/816044 (bzr r10572) --- src/snap.cpp | 9 ++++++++- src/snapped-point.cpp | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src') 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 &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(); -- cgit v1.2.3