From 42725bf2904fae94d41ba8074b6783c64b71fc43 Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Tue, 4 Mar 2008 21:04:14 +0000 Subject: snapindicator in freehand (bzr r4959) --- src/draw-context.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/draw-context.cpp') diff --git a/src/draw-context.cpp b/src/draw-context.cpp index 649f13572..64cfb76f7 100644 --- a/src/draw-context.cpp +++ b/src/draw-context.cpp @@ -40,6 +40,7 @@ #include "snap.h" #include "sp-path.h" #include "sp-namedview.h" +#include "display/snap-indicator.h" static void sp_draw_context_class_init(SPDrawContextClass *klass); static void sp_draw_context_init(SPDrawContext *dc); @@ -354,8 +355,12 @@ void spdc_endpoint_snap_rotation(SPEventContext const *const ec, NR::Point &p, N /* Snap it along best vector */ SnapManager const &m = SP_EVENT_CONTEXT_DESKTOP(ec)->namedview->snap_manager; - p = m.constrainedSnap(Inkscape::Snapper::SNAPPOINT_NODE, - p, Inkscape::Snapper::ConstraintLine(best), NULL).getPoint(); + Inkscape::SnappedPoint const s = m.constrainedSnap( Inkscape::Snapper::SNAPPOINT_NODE, + p, Inkscape::Snapper::ConstraintLine(best), NULL ); + p = s.getPoint(); + if (s.getDistance() < NR_HUGE) { + SP_EVENT_CONTEXT_DESKTOP(ec)->snapindicator->set_new_snappoint(p.to_2geom()); + } } } @@ -368,7 +373,11 @@ void spdc_endpoint_snap_free(SPEventContext const * const ec, NR::Point& p, guin } SnapManager const &m = SP_EVENT_CONTEXT_DESKTOP(ec)->namedview->snap_manager; - p = m.freeSnap(Inkscape::Snapper::SNAPPOINT_NODE, p, NULL).getPoint(); + Inkscape::SnappedPoint const s = m.freeSnap(Inkscape::Snapper::SNAPPOINT_NODE, p, NULL); + p = s.getPoint(); + if (s.getDistance() < NR_HUGE) { + SP_EVENT_CONTEXT_DESKTOP(ec)->snapindicator->set_new_snappoint(p.to_2geom()); + } } static SPCurve * -- cgit v1.2.3