[gtk+/gtk-3-20] wayland: Ignore NoSymbol keys
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-20] wayland: Ignore NoSymbol keys
- Date: Wed, 27 Apr 2016 13:08:27 +0000 (UTC)
commit 8f9693e02cf4586fc5985178b896faf58b88bb1f
Author: Daniel Stone <daniels collabora com>
Date: Wed Apr 27 14:06:38 2016 +0200
wayland: Ignore NoSymbol keys
NoSymbol is not a valid GDK symbol (it only has the concept of
VoidSymbol, for some reason, which is neither the same thing nor
produced by any sane keymap). Passing NoSymbol events through to GTK+
apps is unlikely to produce anything useful.
In particular, this meant VTE would scroll to the end of the buffer when
pressing Fn (required for Page Up/Down on Macs), as it was receiving a
keypress that wasn't a modifeir. This does not happen on X11, as the
KEY_FN keycode is above 255, so does not get sent to clients.
https://bugzilla.gnome.org/show_bug.cgi?id=764825
gdk/wayland/gdkdevice-wayland.c | 3 +++
gdk/wayland/gdkkeys-wayland.c | 2 +-
2 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index 4745357..efaed86 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -1735,6 +1735,9 @@ deliver_key_event (GdkWaylandSeat *seat,
sym = xkb_state_key_get_one_sym (xkb_state, key);
+ if (sym == XKB_KEY_NoSymbol)
+ return;
+
seat->time = time_;
seat->key_modifiers = gdk_keymap_get_modifier_state (keymap);
diff --git a/gdk/wayland/gdkkeys-wayland.c b/gdk/wayland/gdkkeys-wayland.c
index 229eedb..c702c64 100644
--- a/gdk/wayland/gdkkeys-wayland.c
+++ b/gdk/wayland/gdkkeys-wayland.c
@@ -351,7 +351,7 @@ gdk_wayland_keymap_translate_keyboard_state (GdkKeymap *keymap,
if (consumed_modifiers)
*consumed_modifiers = get_gdk_modifiers (xkb_keymap, consumed);
- return TRUE;
+ return (sym != XKB_KEY_NoSymbol);
}
static guint
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]