wayland: Implement gdk_keymap_get_modifier_state
This commit is contained in:
		| @ -903,22 +903,6 @@ keyboard_handle_leave (void               *data, | ||||
| static gboolean | ||||
| keyboard_repeat (gpointer data); | ||||
|  | ||||
| static GdkModifierType | ||||
| get_modifier (struct xkb_state *state) | ||||
| { | ||||
|   GdkModifierType modifiers = 0; | ||||
|   modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_SHIFT, XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_SHIFT_MASK:0; | ||||
|   modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_CAPS, XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_LOCK_MASK:0; | ||||
|   modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_CTRL, XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_CONTROL_MASK:0; | ||||
|   modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_ALT, XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_MOD1_MASK:0; | ||||
|   modifiers |= (xkb_state_mod_name_is_active (state, "Mod2", XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_MOD2_MASK:0; | ||||
|   modifiers |= (xkb_state_mod_name_is_active (state, "Mod3", XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_MOD3_MASK:0; | ||||
|   modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_LOGO, XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_MOD4_MASK:0; | ||||
|   modifiers |= (xkb_state_mod_name_is_active (state, "Mod5", XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_MOD5_MASK:0; | ||||
|  | ||||
|   return modifiers; | ||||
| } | ||||
|  | ||||
| static void | ||||
| translate_keyboard_string (GdkEventKey *event) | ||||
| { | ||||
| @ -1024,7 +1008,7 @@ deliver_key_event(GdkWaylandDeviceData *device, | ||||
|   sym = xkb_state_key_get_one_sym (xkb_state, key); | ||||
|  | ||||
|   device->time = time; | ||||
|   device->modifiers = get_modifier (xkb_state); | ||||
|   device->modifiers = gdk_keymap_get_modifier_state (keymap); | ||||
|  | ||||
|   event = gdk_event_new (state ? GDK_KEY_PRESS : GDK_KEY_RELEASE); | ||||
|   event->key.window = device->keyboard_focus?g_object_ref (device->keyboard_focus):NULL; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Matthias Clasen
					Matthias Clasen