#define MOD_CAPS_MASK 0x02
#define MOD_CONTROL_MASK 0x04
#define MOD_ALT_MASK 0x08
+#define MOD_SUPER_MASK 0x20
#define MOD_NUM_MASK 0x100
#define MOD_Mod5_MASK 0x80
1 << xkb_map_mod_get_index (wsc_ctx->keymap, "Mod1");
wsc_ctx->shift_mask =
1 << xkb_map_mod_get_index (wsc_ctx->keymap, "Shift");
+ wsc_ctx->super_mask =
+ 1 << xkb_map_mod_get_index (wsc_ctx->keymap, "Super");
LOGD ("create _keysym2keycode");
_init_keysym2keycode (wsc_ctx);
wsc_ctx->modifiers |= SCIM_KEY_AltMask;
if (mask & wsc_ctx->shift_mask)
wsc_ctx->modifiers |= SCIM_KEY_ShiftMask;
+ if (mask & wsc_ctx->super_mask)
+ wsc_ctx->modifiers |= SCIM_KEY_SuperMask;
wl_input_method_context_modifiers (context, serial,
mods_depressed, mods_depressed,
key.mask |= SCIM_KEY_AltMask;
if (modifiers & MOD_CONTROL_MASK)
key.mask |= SCIM_KEY_ControlMask;
+ if (modifiers & MOD_SUPER_MASK)
+ key.mask |= SCIM_KEY_SuperMask;
if (modifiers & MOD_CAPS_MASK)
key.mask |= SCIM_KEY_CapsLockMask;
modifiers |= MOD_ALT_MASK;
if (key.is_control_down ())
modifiers |= MOD_CONTROL_MASK;
+ if (key.is_super_down ())
+ modifiers |= MOD_SUPER_MASK;
_keyname_to_keysym (key.code, &modifiers);