summaryrefslogtreecommitdiffstats
path: root/src/desktop-events.cpp
diff options
context:
space:
mode:
authorDiederik van Lierop <mail@diedenrezi.nl>2007-09-16 20:26:27 +0000
committerdvlierop2 <dvlierop2@users.sourceforge.net>2007-09-16 20:26:27 +0000
commit6074e619f03df4026ba53e124ee5bff39de16a92 (patch)
tree1f7946f57bce6adf9ae96488b7696597fc626250 /src/desktop-events.cpp
parentAdd handling of focus tabbing for GdlDockItem + various DockItem focus (diff)
downloadinkscape-6074e619f03df4026ba53e124ee5bff39de16a92.tar.gz
inkscape-6074e619f03df4026ba53e124ee5bff39de16a92.zip
Improve snapping of newly created guides
(bzr r3765)
Diffstat (limited to 'src/desktop-events.cpp')
-rw-r--r--src/desktop-events.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/desktop-events.cpp b/src/desktop-events.cpp
index 90c02a772..b71cc155c 100644
--- a/src/desktop-events.cpp
+++ b/src/desktop-events.cpp
@@ -95,15 +95,15 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge
if (dragging && event->button.button == 1) {
gdk_pointer_ungrab(event->button.time);
NR::Point const event_w(sp_canvas_window_to_world(dtw->canvas, event_win));
- NR::Point const event_dt(desktop->w2d(event_w));
+ NR::Point event_dt(desktop->w2d(event_w));
+
+ SnapManager const &m = desktop->namedview->snap_manager;
+ event_dt = m.guideSnap(event_dt, component_vectors[horiz ? NR::Y : NR::X]).getPoint();
+
dragging = false;
gtk_object_destroy(GTK_OBJECT(guide));
guide = NULL;
- if ( ( horiz
- ? wy
- : wx )
- >= 0 )
- {
+ if ((horiz ? wy : wx) >= 0) {
Inkscape::XML::Document *xml_doc = sp_document_repr_doc(desktop->doc());
Inkscape::XML::Node *repr = xml_doc->createElement("sodipodi:guide");
repr->setAttribute("orientation", (horiz) ? "horizontal" : "vertical");
@@ -192,9 +192,6 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data)
event->button.y);
NR::Point event_dt(desktop->w2d(event_w));
- //If we don't snap here again, it will end up at the current mouse position
- //whereas it might have been at a snapped position a millisecond before.
- //See GDK_MOTION_NOTIFY above. Why's that????
SnapManager const &m = desktop->namedview->snap_manager;
event_dt = m.guideSnap(event_dt, guide->normal).getPoint();