diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2010-03-14 21:04:08 +0000 |
|---|---|---|
| committer | Krzysztof KosiĆski <tweenk.pl@gmail.com> | 2010-03-14 21:04:08 +0000 |
| commit | a87f933596b37ac2194537f20d4bf91b8899adba (patch) | |
| tree | 21a790b0adfe0d7b403f5268d7bf9452d540e48e /src/snap.cpp | |
| parent | fix pasting of LPE stacks (diff) | |
| download | inkscape-a87f933596b37ac2194537f20d4bf91b8899adba.tar.gz inkscape-a87f933596b37ac2194537f20d4bf91b8899adba.zip | |
New node tool: implement handle snapping
Fixed bugs:
- https://launchpad.net/bugs/538487
(bzr r9192)
Diffstat (limited to 'src/snap.cpp')
| -rw-r--r-- | src/snap.cpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/snap.cpp b/src/snap.cpp index 352683623..b8b08dad5 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -368,32 +368,25 @@ Inkscape::SnappedPoint SnapManager::constrainedSnap(Inkscape::SnapCandidatePoint Inkscape::SnappedPoint no_snap = Inkscape::SnappedPoint(pp, p.getSourceType(), p.getSourceNum(), Inkscape::SNAPTARGET_CONSTRAINT, Geom::L2(pp - p.getPoint()), 0, false, false); if (!someSnapperMightSnap()) { - // The constraint should always be enforced, so we return pp here instead of p - if (_snapindicator) { - _desktop->snapindicator->set_new_snaptarget(no_snap); - } + // Always return point on constraint return no_snap; } - // Then try to snap the projected point - Inkscape::SnapCandidatePoint candidate(pp, p.getSourceType(), p.getSourceNum(), Inkscape::SNAPTARGET_UNDEFINED, Geom::Rect()); - SnappedConstraints sc; SnapperList const snappers = getSnappers(); for (SnapperList::const_iterator i = snappers.begin(); i != snappers.end(); i++) { - (*i)->constrainedSnap(sc, candidate, bbox_to_snap, constraint, &_items_to_ignore); + (*i)->constrainedSnap(sc, p, bbox_to_snap, constraint, &_items_to_ignore); } - Inkscape::SnappedPoint result = findBestSnap(candidate, sc, true); + Inkscape::SnappedPoint result = findBestSnap(p, sc, true); if (result.getSnapped()) { + // only change the snap indicator if we really snapped to something + if (_snapindicator) { + _desktop->snapindicator->set_new_snaptarget(result); + } return result; } - - // The constraint should always be enforced, so we return pp here instead of p - if (_snapindicator) { - _desktop->snapindicator->set_new_snaptarget(no_snap); - } return no_snap; } |
