Ecore_X: Add api function (and code) to retrieve actual keycode from
authordevilhorns <devilhorns@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 29 Jan 2012 20:29:30 +0000 (20:29 +0000)
committerdevilhorns <devilhorns@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 29 Jan 2012 20:29:30 +0000 (20:29 +0000)
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

src/lib/ecore_x/Ecore_X.h
src/lib/ecore_x/xcb/ecore_xcb_keymap.c
src/lib/ecore_x/xlib/ecore_x_test.c

index b5d2c3f..29992b9 100644 (file)
@@ -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 *
index 40304df..b1c7528 100644 (file)
@@ -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,
index c8c04e4..23eea10 100644 (file)
@@ -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;
+}