From de27d953d1c13d2e7563b43c2d959b1b02aee9c3 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Mon, 12 May 2008 18:58:04 +0000 Subject: Add a centralized check (i.e. in the snapper mechanism) whether we've snapped or not, instead of leaving it up to the various tools. This should prevent these tools from moving to (0,0) if they bluntly use the value returned by the snapping mechanism without checking whether snapping has really occured. (bzr r5659) --- src/desktop-events.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'src/desktop-events.cpp') diff --git a/src/desktop-events.cpp b/src/desktop-events.cpp index 29734f459..e151f0ac9 100644 --- a/src/desktop-events.cpp +++ b/src/desktop-events.cpp @@ -144,9 +144,8 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge SnapManager &m = desktop->namedview->snap_manager; m.setup(desktop); - Inkscape::SnappedPoint snappoint = m.guideSnap(event_dt, normal); - event_dt = snappoint.getPoint(); - + m.guideSnap(event_dt, normal); + sp_guideline_set_position(SP_GUIDELINE(guide), event_dt.to_2geom()); desktop->set_coordinate_status(event_dt); desktop->setPosition (event_dt); @@ -160,7 +159,7 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge SnapManager &m = desktop->namedview->snap_manager; m.setup(desktop); - event_dt = m.guideSnap(event_dt, normal).getPoint(); + m.guideSnap(event_dt, normal); dragging = false; gtk_object_destroy(GTK_OBJECT(guide)); @@ -243,9 +242,8 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data) // which are dragged off the ruler, are being snapped in sp_dt_ruler_event SnapManager &m = desktop->namedview->snap_manager; m.setup(desktop); - Inkscape::SnappedPoint snappoint = m.guideSnap(motion_dt, guide->normal_to_line); - motion_dt = snappoint.getPoint(); - + m.guideSnap(motion_dt, guide->normal_to_line); + sp_guide_moveto(*guide, motion_dt.to_2geom(), false); moved = true; desktop->set_coordinate_status(motion_dt); @@ -263,7 +261,7 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data) SnapManager &m = desktop->namedview->snap_manager; m.setup(desktop); - event_dt = m.guideSnap(event_dt, guide->normal_to_line).getPoint(); + m.guideSnap(event_dt, guide->normal_to_line); if (sp_canvas_world_pt_inside_window(item->canvas, event_w)) { sp_guide_moveto(*guide, event_dt.to_2geom(), true); -- cgit v1.2.3