diff --git a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x.c index 6788d627b4..4d942b1bae 100644 --- a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x.c +++ b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x.c @@ -211,6 +211,16 @@ _XReply(Display *disp, #endif /* ifdef LOGRT */ +/* wrapper to use XkbKeycodeToKeysym when possible */ +KeySym +_ecore_x_XKeycodeToKeysym(Display *display, KeyCode keycode, int index) +{ +#ifdef ECORE_XKB + return XkbKeycodeToKeysym(display, keycode, 0, index); +#endif + return XKeycodeToKeysym(display, keycode, index); +} + void _ecore_x_modifiers_get(void) { @@ -1056,7 +1066,8 @@ _ecore_x_key_mask_get(KeySym sym) { for (j = 0; j < 8; j++) { - sym2 = XKeycodeToKeysym(_ecore_x_disp, mod->modifiermap[i], j); + sym2 = _ecore_x_XKeycodeToKeysym(_ecore_x_disp, + mod->modifiermap[i], j); if (sym2 != 0) break; } diff --git a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c index 0b06a79cdf..acb64a944e 100644 --- a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c +++ b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c @@ -278,8 +278,8 @@ _ecore_key_press(int event, int val; _ecore_x_last_event_mouse_move = 0; - keyname = XKeysymToString(XKeycodeToKeysym(xevent->display, - xevent->keycode, 0)); + keyname = XKeysymToString(_ecore_x_XKeycodeToKeysym(xevent->display, + xevent->keycode, 0)); if (!keyname) { snprintf(keyname_buffer, diff --git a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_private.h b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_private.h index 02a01f7e7f..8132e13589 100644 --- a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_private.h +++ b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_private.h @@ -372,6 +372,7 @@ Ecore_Event_Mouse_Button *_ecore_mouse_button(int event, double mry); void _ecore_x_modifiers_get(void); +KeySym _ecore_x_XKeycodeToKeysym(Display *display, KeyCode keycode, int index); //#define LOGFNS 1 diff --git a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_test.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_test.c index 23eea105c2..a4d40f6ed3 100644 --- a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_test.c +++ b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_test.c @@ -98,9 +98,9 @@ ecore_x_test_fake_key_press(const char *key __UNUSED__) return EINA_FALSE; keycode = XKeysymToKeycode(_ecore_x_disp, keysym); - if (XKeycodeToKeysym(_ecore_x_disp, keycode, 0) != keysym) + if (_ecore_x_XKeycodeToKeysym(_ecore_x_disp, keycode, 0) != keysym) { - if (XKeycodeToKeysym(_ecore_x_disp, keycode, 1) == keysym) + if (_ecore_x_XKeycodeToKeysym(_ecore_x_disp, keycode, 1) == keysym) shift = 1; else keycode = 0;