summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;