summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@unixuser.org>2012-04-16 18:05:22 +0900
committerEitan Isaacson <eitan@monotonous.org>2012-10-05 15:59:30 -0700
commit348c91015fac1b086abe8a950987835943172e60 (patch)
tree0a38563b676b390b4362aae73a6d9ce7400c4715
parentc80067412ed9aa434f4bbe2aabed88a21b8cf71f (diff)
downloadcaribou-348c91015fac1b086abe8a950987835943172e60.tar.gz
libcaribou: Ignore level 3 keysyms when looking up keycode
https://bugzilla.gnome.org/show_bug.cgi?id=673579
-rw-r--r--libcaribou/xadapter.vala7
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;