diff options
author | Daiki Ueno <ueno@unixuser.org> | 2012-04-16 18:05:22 +0900 |
---|---|---|
committer | Eitan Isaacson <eitan@monotonous.org> | 2012-10-05 15:59:30 -0700 |
commit | 348c91015fac1b086abe8a950987835943172e60 (patch) | |
tree | 0a38563b676b390b4362aae73a6d9ce7400c4715 /libcaribou | |
parent | c80067412ed9aa434f4bbe2aabed88a21b8cf71f (diff) | |
download | caribou-348c91015fac1b086abe8a950987835943172e60.tar.gz |
libcaribou: Ignore level 3 keysyms when looking up keycode
https://bugzilla.gnome.org/show_bug.cgi?id=673579
Diffstat (limited to 'libcaribou')
-rw-r--r-- | libcaribou/xadapter.vala | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libcaribou/xadapter.vala b/libcaribou/xadapter.vala index d22e2d4..4d5c7c1 100644 --- a/libcaribou/xadapter.vala +++ b/libcaribou/xadapter.vala @@ -184,12 +184,15 @@ namespace Caribou { if (!kmap.get_entries_for_keyval (keyval, out kmk)) return false; - Gdk.KeymapKey best_match = kmk[0]; + Gdk.KeymapKey? best_match = null; foreach (KeymapKey km in kmk) - if (km.group == this.group) + if (km.group == this.group && km.level <= 1) best_match = km; + if (best_match == null) + return false; + keycode = (uchar) best_match.keycode; modmask = (best_match.level == 1) ? Gdk.ModifierType.SHIFT_MASK : 0; |