summaryrefslogtreecommitdiffstats
path: root/src/event-context.cpp
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2007-11-21 03:44:12 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2007-11-21 03:44:12 +0000
commit27ace5f383b9f68c6a371f18ce54d43276ae1b6d (patch)
tree65fb21319a25361914ae52b7b200a7f54df7d648 /src/event-context.cpp
parentpatch 1833571: better handle calculation for nodes converted to smooth/symm (diff)
downloadinkscape-27ace5f383b9f68c6a371f18ce54d43276ae1b6d.tar.gz
inkscape-27ace5f383b9f68c6a371f18ce54d43276ae1b6d.zip
fix gobble_key_events so it also handles release events
(bzr r4120)
Diffstat (limited to 'src/event-context.cpp')
-rw-r--r--src/event-context.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/event-context.cpp b/src/event-context.cpp
index 1bf273b31..7fca5accb 100644
--- a/src/event-context.cpp
+++ b/src/event-context.cpp
@@ -215,14 +215,15 @@ gint gobble_key_events(guint keyval, gint mask)
event_next = gdk_event_get();
// while the next event is also a key notify with the same keyval and mask,
- while (event_next && event_next->type == GDK_KEY_PRESS
+ while (event_next && (event_next->type == GDK_KEY_PRESS || event_next->type == GDK_KEY_RELEASE)
&& event_next->key.keyval == keyval
- && (event_next->key.state & mask)) {
+ && (!mask || (event_next->key.state & mask))) {
+ if (event_next->type == GDK_KEY_PRESS)
+ i ++;
// kill it
gdk_event_free(event_next);
// get next
event_next = gdk_event_get();
- i ++;
}
// otherwise, put it back onto the queue
if (event_next) gdk_event_put(event_next);