From dc77ca9ec48c72a20fbd3f9ae038f41e01d98216 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Sat, 25 Jul 2015 16:14:12 +0200 Subject: SPKnot no longer consumes all GDK_KEY_PRESS events Fixed bugs: - https://launchpad.net/bugs/1164964 (bzr r14255) --- src/knot.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/knot.cpp') diff --git a/src/knot.cpp b/src/knot.cpp index b3813ab53..92d14afb9 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -206,6 +206,8 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot return true; } + bool key_press_event_unconsumed = FALSE; + knot_ref(knot); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -355,6 +357,7 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot break; default: consumed = FALSE; + key_press_event_unconsumed = TRUE; break; } break; @@ -364,7 +367,11 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot knot_unref(knot); - return consumed || grabbed; + if (key_press_event_unconsumed) { + return false; // e.g. in case "%" was pressed to toggle snapping, or Q for quick zoom (while dragging a handle) + } else { + return consumed || grabbed; + } } void sp_knot_handler_request_position(GdkEvent *event, SPKnot *knot) { -- cgit v1.2.3