diff options
| author | bulia byak <buliabyak@gmail.com> | 2007-11-21 03:44:12 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2007-11-21 03:44:12 +0000 |
| commit | 27ace5f383b9f68c6a371f18ce54d43276ae1b6d (patch) | |
| tree | 65fb21319a25361914ae52b7b200a7f54df7d648 /src/event-context.cpp | |
| parent | patch 1833571: better handle calculation for nodes converted to smooth/symm (diff) | |
| download | inkscape-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.cpp | 7 |
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); |
