From fb7f02d2ad7ea206c3eba9efdf7f725af0a48de8 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Date: Wed, 1 Jan 2020 21:03:19 +0100 Subject: [PATCH] Autodelete guides draging outside canvas --- src/widgets/desktop-widget.cpp | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 1a2fbef87e..07daac66de 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -1045,21 +1045,13 @@ SPDesktopWidget::eventoutside(GtkWidget *widget, GdkEvent *event, SPDesktopWidge if ((event->type == GDK_MOTION_NOTIFY || event->type == GDK_BUTTON_RELEASE) && !dtw->_canvas->_inside && dtw->desktop->event_context->_button1on) { if (dtw->desktop->active_guide) { - if (event->type == GDK_MOTION_NOTIFY) { - Geom::Point const motion_w(event->motion.x, event->motion.y); - Geom::Point motion_dt(dtw->desktop->w2d(motion_w)); - dtw->desktop->active_guide->moveto(motion_dt, false); - dtw->desktop->set_coordinate_status(motion_dt); - } else { - dtw->desktop->active_guide->moveto(dtw->desktop->active_guide->getPoint(), false); - dtw->desktop->active_guide->set_normal(dtw->desktop->active_guide->getNormal(), false); - sp_guide_remove(dtw->desktop->active_guide); - dtw->desktop->active_guide = nullptr; - Glib::wrap(GTK_WIDGET(dtw->desktop->getCanvas())) - ->get_window() - ->set_cursor(dtw->desktop->event_context->cursor); - DocumentUndo::done(dtw->desktop->getDocument(), SP_VERB_NONE, _("Delete guide")); - } + sp_guide_remove(dtw->desktop->active_guide); + dtw->desktop->active_guide = nullptr; + sp_event_context_discard_delayed_snap_event(dtw->desktop->event_context); + Glib::wrap(GTK_WIDGET(dtw->desktop->getCanvas())) + ->get_window() + ->set_cursor(dtw->desktop->event_context->cursor); + DocumentUndo::done(dtw->desktop->getDocument(), SP_VERB_NONE, _("Delete guide")); } sp_desktop_root_handler(nullptr, event, dtw->desktop); } -- GitLab