weston_xkb_info: Cache all modifier indices for X11
X11 has a set of eight modifiers which we want to represent. Cache
their indices when we create a weston_xkb_info, so we can use this from
compositor-x11 to keep the state synchronised exactly between the host X
server and a nested Weston instance.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
diff --git a/src/compositor.c b/src/compositor.c
index 17e6735..1d57316 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -2380,12 +2380,19 @@
{
char *keymap_str;
+ xkb_info->shift_mod = xkb_map_mod_get_index(xkb_info->keymap,
+ XKB_MOD_NAME_SHIFT);
+ xkb_info->caps_mod = xkb_map_mod_get_index(xkb_info->keymap,
+ XKB_MOD_NAME_CAPS);
xkb_info->ctrl_mod = xkb_map_mod_get_index(xkb_info->keymap,
XKB_MOD_NAME_CTRL);
xkb_info->alt_mod = xkb_map_mod_get_index(xkb_info->keymap,
XKB_MOD_NAME_ALT);
+ xkb_info->mod2_mod = xkb_map_mod_get_index(xkb_info->keymap, "Mod2");
+ xkb_info->mod3_mod = xkb_map_mod_get_index(xkb_info->keymap, "Mod3");
xkb_info->super_mod = xkb_map_mod_get_index(xkb_info->keymap,
XKB_MOD_NAME_LOGO);
+ xkb_info->mod5_mod = xkb_map_mod_get_index(xkb_info->keymap, "Mod5");
xkb_info->num_led = xkb_map_led_get_index(xkb_info->keymap,
XKB_LED_NAME_NUM);