diff options
| author | Diederik van Lierop <mail@diedenrezi.nl> | 2008-01-03 21:37:41 +0000 |
|---|---|---|
| committer | dvlierop2 <dvlierop2@users.sourceforge.net> | 2008-01-03 21:37:41 +0000 |
| commit | 3614957da595ec421cad8350fe3b645d3f9e836e (patch) | |
| tree | 141618522cfcc3c1d27b2c0c267df0234909059f /src/snapper.cpp | |
| parent | * Added initial Breton (br_FR) translation by Alan Monfort (closes #180070) (diff) | |
| download | inkscape-3614957da595ec421cad8350fe3b645d3f9e836e.tar.gz inkscape-3614957da595ec421cad8350fe3b645d3f9e836e.zip | |
1) fix snapping while scaling
2) fix constrained snapping
3) improve snapping logic (again), or more specifically: better obey "always snap"
4) refactoring to reduce risk of bugs: renaming variables and methods for better readability, adding class members instead of using std::pairs, etc.
(bzr r4379)
Diffstat (limited to 'src/snapper.cpp')
| -rw-r--r-- | src/snapper.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/snapper.cpp b/src/snapper.cpp index 1daa1d151..efdc6bcbe 100644 --- a/src/snapper.cpp +++ b/src/snapper.cpp @@ -20,9 +20,9 @@ Inkscape::Snapper::PointType const Inkscape::Snapper::SNAPPOINT_GUIDE = 0x4; /** * Construct new Snapper for named view. * \param nv Named view. - * \param d Snap distance. + * \param d Snap tolerance. */ -Inkscape::Snapper::Snapper(SPNamedView const *nv, NR::Coord const d) : _named_view(nv), _snap_enabled(true), _distance(d) +Inkscape::Snapper::Snapper(SPNamedView const *nv, NR::Coord const t) : _named_view(nv), _snap_enabled(true), _snapper_tolerance(t) { g_assert(_named_view != NULL); g_assert(SP_IS_NAMEDVIEW(_named_view)); @@ -31,20 +31,25 @@ Inkscape::Snapper::Snapper(SPNamedView const *nv, NR::Coord const d) : _named_vi } /** - * Set snap distance. - * \param d New snap distance (desktop coordinates) + * Set snap tolerance. + * \param d New snap tolerance (desktop coordinates) */ -void Inkscape::Snapper::setDistance(NR::Coord const d) +void Inkscape::Snapper::setSnapperTolerance(NR::Coord const d) { - _distance = d; + _snapper_tolerance = d; } /** - * \return Snap distance (desktop coordinates); depends on current zoom so that it's always the same in screen pixels + * \return Snap tolerance (desktop coordinates); depends on current zoom so that it's always the same in screen pixels */ -NR::Coord Inkscape::Snapper::getDistance() const +NR::Coord Inkscape::Snapper::getSnapperTolerance() const { - return _distance / SP_ACTIVE_DESKTOP->current_zoom(); + return _snapper_tolerance / SP_ACTIVE_DESKTOP->current_zoom(); +} + +bool Inkscape::Snapper::getSnapperAlwaysSnap() const +{ + return _snapper_tolerance == 10000; //TODO: Replace this threshold of 10000 by a constant; see also tolerance-slider.cpp } /** |
