discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=476ebdc0a16140a8d9e07ae3814c1475b51cd1aa
commit 476ebdc0a16140a8d9e07ae3814c1475b51cd1aa Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Mon Jun 29 13:09:56 2015 -0400 ecore-x: add ecore_x_keysym_get() this is a less invasive solution for retrieving a keysym. X keysyms are not portable, and so this function should not be used for any code which is meant to run on other platforms. @feature --- src/lib/ecore_x/Ecore_X.h | 10 ++++++++++ src/lib/ecore_x/xcb/ecore_xcb_keymap.c | 6 ++++++ src/lib/ecore_x/xlib/ecore_x_test.c | 6 ++++++ 3 files changed, 22 insertions(+) diff --git a/src/lib/ecore_x/Ecore_X.h b/src/lib/ecore_x/Ecore_X.h index 8c3a41f..f933aee 100644 --- a/src/lib/ecore_x/Ecore_X.h +++ b/src/lib/ecore_x/Ecore_X.h @@ -2520,6 +2520,16 @@ EAPI const char *ecore_x_keysym_string_get(int keysym); */ EAPI int ecore_x_keysym_keycode_get(const char *keyname); +/** + * Return the X-specific keysym for a given key string + * @param string The key to get the keysym for + * @return the keysym value + * + * @since 1.15 + * @note The returned value is not portable. + */ +EAPI unsigned int ecore_x_keysym_get(const char *string); + typedef struct _Ecore_X_Image Ecore_X_Image; EAPI Ecore_X_Image *ecore_x_image_new(int w, int h, Ecore_X_Visual vis, int depth); diff --git a/src/lib/ecore_x/xcb/ecore_xcb_keymap.c b/src/lib/ecore_x/xcb/ecore_xcb_keymap.c index 530a3d4..35a559c 100644 --- a/src/lib/ecore_x/xcb/ecore_xcb_keymap.c +++ b/src/lib/ecore_x/xcb/ecore_xcb_keymap.c @@ -330,6 +330,12 @@ ecore_x_keysym_keycode_get(const char *keyname) return _ecore_xcb_keymap_string_to_keycode(keyname); } +EAPI unsigned int +ecore_x_keysym_get(const char *string) +{ + return _ecore_xcb_keymap_string_to_keysym(string); +} + /* 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 4eec6b7..f552910 100644 --- a/src/lib/ecore_x/xlib/ecore_x_test.c +++ b/src/lib/ecore_x/xlib/ecore_x_test.c @@ -165,3 +165,9 @@ ecore_x_keysym_keycode_get(const char *keyname) return keycode; } + +EAPI unsigned int +ecore_x_keysym_get(const char *string) +{ + return XStringToKeysym(string); +} --