From 07d32ff9bade493f2549e8e90c32d11ba12b199d Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Sat, 31 Jan 2009 13:51:52 +0000 Subject: Store the snapper tolerances in the snap-preferences instead of in each snapper individualy. This way we don't have to update all snappers when the namedview has been updated (and we can get rid of the _update_snap_distances() call) (bzr r7208) --- src/guide-snapper.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/guide-snapper.cpp') diff --git a/src/guide-snapper.cpp b/src/guide-snapper.cpp index 54a4086a4..f344d891f 100644 --- a/src/guide-snapper.cpp +++ b/src/guide-snapper.cpp @@ -15,6 +15,7 @@ #include "libnr/nr-values.h" #include "libnr/nr-point-fns.h" #include "sp-namedview.h" +#include "desktop.h" #include "sp-guide.h" Inkscape::GuideSnapper::GuideSnapper(SnapManager *sm, Geom::Coord const d) : LineSnapper(sm, d) @@ -22,6 +23,21 @@ Inkscape::GuideSnapper::GuideSnapper(SnapManager *sm, Geom::Coord const d) : Lin } +/** + * \return Snap tolerance (desktop coordinates); depends on current zoom so that it's always the same in screen pixels + */ +Geom::Coord Inkscape::GuideSnapper::getSnapperTolerance() const +{ + SPDesktop const *dt = _snapmanager->getDesktop(); + double const zoom = dt ? dt->current_zoom() : 1; + return _snapmanager->snapprefs.getGuideTolerance() / zoom; +} + +bool Inkscape::GuideSnapper::getSnapperAlwaysSnap() const +{ + return _snapmanager->snapprefs.getGuideTolerance() == 10000; //TODO: Replace this threshold of 10000 by a constant; see also tolerance-slider.cpp +} + Inkscape::GuideSnapper::LineList Inkscape::GuideSnapper::_getSnapLines(Geom::Point const &/*p*/) const { LineList s; -- cgit v1.2.3