summaryrefslogtreecommitdiffstats
path: root/src/knot.cpp
diff options
context:
space:
mode:
authorJabiertxof <jabier.arraiza@marker.es>2019-09-12 16:57:44 +0000
committerJabiertxof <jabier.arraiza@marker.es>2019-09-12 16:57:44 +0000
commit6058de61bb1c59cb3307bdcb9551a68f9702bf81 (patch)
treeef4d13b5d0dc0165afe7252977d4934e2a17847d /src/knot.cpp
parentUpdate it.po (diff)
downloadinkscape-6058de61bb1c59cb3307bdcb9551a68f9702bf81.tar.gz
inkscape-6058de61bb1c59cb3307bdcb9551a68f9702bf81.zip
Line height fixes
Diffstat (limited to 'src/knot.cpp')
-rw-r--r--src/knot.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/knot.cpp b/src/knot.cpp
index abf3b1920..3fc92b4ef 100644
--- a/src/knot.cpp
+++ b/src/knot.cpp
@@ -260,7 +260,36 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot
Inkscape::UI::Tools::sp_update_helperpath();
break;
case GDK_MOTION_NOTIFY:
- if (grabbed && knot->desktop && knot->desktop->event_context && !knot->desktop->event_context->space_panning) {
+ if (!(event->motion.state & GDK_BUTTON1_MASK) && knot->flags & SP_KNOT_DRAGGING) {
+ // If we have any pending snap event, then invoke it now
+ if (knot->desktop->event_context->_delayed_snap_event) {
+ sp_event_context_snap_watchdog_callback(knot->desktop->event_context->_delayed_snap_event);
+ }
+ sp_event_context_discard_delayed_snap_event(knot->desktop->event_context);
+ knot->pressure = 0;
+
+ if (transform_escaped) {
+ transform_escaped = false;
+ consumed = TRUE;
+ } else {
+ knot->setFlag(SP_KNOT_GRABBED, FALSE);
+
+ if (!nograb) {
+ sp_canvas_item_ungrab(knot->item);
+ }
+
+ if (moved) {
+ knot->setFlag(SP_KNOT_DRAGGING, FALSE);
+ knot->ungrabbed_signal.emit(knot, event->motion.state);
+ } else {
+ knot->click_signal.emit(knot, event->motion.state);
+ }
+
+ grabbed = FALSE;
+ moved = FALSE;
+ consumed = TRUE;
+ }
+ } else if (grabbed && knot->desktop && knot->desktop->event_context && !knot->desktop->event_context->space_panning) {
consumed = TRUE;
if ( within_tolerance