discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=fdd4d50146281b415f5cb67e220bbe2f39244cd9

commit fdd4d50146281b415f5cb67e220bbe2f39244cd9
Author: Gwanglim Lee <gl77....@samsung.com>
Date:   Mon Apr 14 08:32:51 2014 -0400

    Fixed a problem with e wl server that sent invalid key value to wl client. 
(server-side)
    
    Summary:
    This problem occurred due to xkb_keysym_t value of libxkbcommon by e wl 
server.
    e wl server should pass keycode from evdev input device on to wl client.
    In order that e wl server receives valid keycode Ecore_Event_Key should have
    an extended data member. This patch should be applied with client side 
patch (efl).
    
    Test Plan: run e wl server -> create wl client -> type keys
    
    Reviewers: raster, devilhorns, zmike
    
    Reviewed By: devilhorns
    
    CC: cedric
    
    Differential Revision: https://phab.enlightenment.org/D713
---
 src/modules/wl_desktop_shell/e_mod_main.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index 52d4795..6a2d83e 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -1362,8 +1362,13 @@ _e_wl_shell_shell_surface_cb_key_up(void *data, Evas *e 
EINA_UNUSED, Evas_Object
 
    /* if we have a grab, send this key to it */
    if (grab)
-     grab->interface->key(grab, ev->timestamp, key, 
-                          WL_KEYBOARD_KEY_STATE_RELEASED);
+     {
+        /* send keycode from evdev */
+        grab->interface->key(grab,
+                             ev->timestamp,
+                             ev->keycode ? ev->keycode : key,
+                             WL_KEYBOARD_KEY_STATE_RELEASED);
+     }
 
    /* update xkb key state */
    xkb_state_update_key(_e_wl_comp->input->xkb.state, key + 8, XKB_KEY_UP);
@@ -1437,8 +1442,13 @@ _e_wl_shell_shell_surface_cb_key_down(void *data, Evas 
*e EINA_UNUSED, Evas_Obje
 
    /* if we have a grab, send this key to it */
    if (grab)
-     grab->interface->key(grab, ev->timestamp, key, 
-                          WL_KEYBOARD_KEY_STATE_PRESSED);
+     {
+        /* send keycode from evdev */
+        grab->interface->key(grab,
+                             ev->timestamp,
+                             ev->keycode ? ev->keycode : key,
+                             WL_KEYBOARD_KEY_STATE_PRESSED);
+     }
 
    /* update xkb key state */
    xkb_state_update_key(_e_wl_comp->input->xkb.state, key + 8, XKB_KEY_DOWN);

-- 


Reply via email to