From c93467177aeeeddcbc185ce0b251763b9c9f056c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 21 Aug 2013 07:17:33 +0100 Subject: [PATCH] another ecore-x instance in wl_desktop_shell --- src/modules/wl_desktop_shell/e_mod_main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index 501539848..d41a4d54a 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -1383,6 +1383,7 @@ _e_wl_shell_shell_surface_cb_key_up(void *data, Evas_Object *obj EINA_UNUSED, vo struct wl_keyboard_grab *grab; unsigned int key = 0, *end, *k; unsigned int serial = 0; + xkb_keysym_t sym = XKB_KEY_NoSymbol; ev = event; @@ -1399,7 +1400,11 @@ _e_wl_shell_shell_surface_cb_key_up(void *data, Evas_Object *obj EINA_UNUSED, vo if (kbd->focus != ews->wl.surface) return; /* get the keycode for this key from X */ - key = ecore_x_keysym_keycode_get(ev->keyname) - 8; + sym = xkb_keysym_from_name(ev->keyname, 0); + if (!sym) + sym = xkb_keysym_from_name(ev->keyname, XKB_KEYSYM_CASE_INSENSITIVE); + + key = sym - 8; end = (kbd->keys.data + kbd->keys.size); for (k = kbd->keys.data; k < end; k++)