From: devilhorns Date: Sun, 29 Jan 2012 20:29:30 +0000 (+0000) Subject: Ecore_X: Add api function (and code) to retrieve actual keycode from X-Git-Tag: 2.0_alpha~86^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1c7cc2a82deec43431c23702412e7c423b7740ab;p=framework%2Fuifw%2Fecore.git Ecore_X: Add api function (and code) to retrieve actual keycode from keyname (needed to handle input from x11 to wayland clients). git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@67591 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/ecore_x/Ecore_X.h b/src/lib/ecore_x/Ecore_X.h index b5d2c3f..29992b9 100644 --- a/src/lib/ecore_x/Ecore_X.h +++ b/src/lib/ecore_x/Ecore_X.h @@ -3408,6 +3408,13 @@ EAPI Eina_Bool EAPI const char * ecore_x_keysym_string_get(int keysym); +/** + * Given a keyname, return the keycode representing that key + * + * @since 1.2.0 + */ +EAPI int ecore_x_keysym_keycode_get(const char *keyname); + typedef struct _Ecore_X_Image Ecore_X_Image; EAPI Ecore_X_Image * diff --git a/src/lib/ecore_x/xcb/ecore_xcb_keymap.c b/src/lib/ecore_x/xcb/ecore_xcb_keymap.c index 40304df..b1c7528 100644 --- a/src/lib/ecore_x/xcb/ecore_xcb_keymap.c +++ b/src/lib/ecore_x/xcb/ecore_xcb_keymap.c @@ -279,6 +279,14 @@ ecore_x_keysym_string_get(int keysym) return _ecore_xcb_keymap_keysym_to_string(keysym); } +EAPI int +ecore_x_keysym_keycode_get(const char *keyname) +{ + LOGFN(__FILE__, __LINE__, __FUNCTION__); + + return _ecore_xcb_keymap_string_to_keycode(keyname); +} + /* local functions */ static int _ecore_xcb_keymap_mask_get(void *reply, diff --git a/src/lib/ecore_x/xlib/ecore_x_test.c b/src/lib/ecore_x/xlib/ecore_x_test.c index c8c04e4..23eea10 100644 --- a/src/lib/ecore_x/xlib/ecore_x_test.c +++ b/src/lib/ecore_x/xlib/ecore_x_test.c @@ -153,3 +153,15 @@ ecore_x_keysym_string_get(int keysym) return XKeysymToString(keysym); } +EAPI int +ecore_x_keysym_keycode_get(const char *keyname) +{ + int keycode = 0; + + if (!strncmp(keyname, "Keycode-", 8)) + keycode = atoi(keyname + 8); + else + keycode = XKeysymToKeycode(_ecore_x_disp, XStringToKeysym(keyname)); + + return keycode; +}