From 8de0d15d8ab5a91bb58447aeee28288614919606 Mon Sep 17 00:00:00 2001 From: Rui Matos Date: Tue, 3 Nov 2015 18:39:27 +0100 Subject: [PATCH] wayland: Translate virtual modifiers too Wayland allows us to receive virtual modifiers too so we can just use them directly if the compositor does send them. https://bugzilla.gnome.org/show_bug.cgi?id=748904 --- gdk/wayland/gdkkeys-wayland.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gdk/wayland/gdkkeys-wayland.c b/gdk/wayland/gdkkeys-wayland.c index a0cc1f6144..4819ab69d5 100644 --- a/gdk/wayland/gdkkeys-wayland.c +++ b/gdk/wayland/gdkkeys-wayland.c @@ -264,6 +264,12 @@ get_xkb_modifiers (struct xkb_keymap *xkb_keymap, mods |= 1 << xkb_keymap_mod_get_index (xkb_keymap, XKB_MOD_NAME_LOGO); if (state & GDK_MOD5_MASK) mods |= 1 << xkb_keymap_mod_get_index (xkb_keymap, "Mod5"); + if (state & GDK_SUPER_MASK) + mods |= 1 << xkb_keymap_mod_get_index (xkb_keymap, "Super"); + if (state & GDK_HYPER_MASK) + mods |= 1 << xkb_keymap_mod_get_index (xkb_keymap, "Hyper"); + if (state & GDK_META_MASK) + mods |= 1 << xkb_keymap_mod_get_index (xkb_keymap, "Meta"); return mods; } @@ -290,6 +296,12 @@ get_gdk_modifiers (struct xkb_keymap *xkb_keymap, state |= GDK_MOD4_MASK; if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, "Mod5"))) state |= GDK_MOD5_MASK; + if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, "Super"))) + state |= GDK_SUPER_MASK; + if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, "Hyper"))) + state |= GDK_HYPER_MASK; + if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, "Meta"))) + state |= GDK_META_MASK; return state; }