discomfitor pushed a commit to branch master.

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

commit ae095bb5c5e1190d01887e799ea806b4778ef88a
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed Apr 29 21:58:23 2015 -0400

    ecore-x: use async pointer grab mode in ecore_x_window_key_grab()
    
    using a sync grab here causes the device to be frozen in the xserver,
    preventing any event processing on the device until the grab ends. it also
    prevents new grabs, such as the ones which would be created by xkill when
    launched from a keybinding; this means that as long as the grabbed key is
    held, the pointer is effectively dead to the world.
    
    I attempted to find the reason for using sync pointer grabs here,
    but the original commit message was:
    
      aaaahmmm.. no.. this.. oops
    
    see 
https://git.enlightenment.org/legacy/ecore.git/commit/?id=f62faeae288fc8211d5f97b43d3b81de87db0942
    
    fix T2228
---
 src/lib/ecore_x/xcb/ecore_xcb_window.c | 2 +-
 src/lib/ecore_x/xlib/ecore_x.c         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/ecore_x/xcb/ecore_xcb_window.c 
b/src/lib/ecore_x/xcb/ecore_xcb_window.c
index 8258ef7..47f5822 100644
--- a/src/lib/ecore_x/xcb/ecore_xcb_window.c
+++ b/src/lib/ecore_x/xcb/ecore_xcb_window.c
@@ -1861,7 +1861,7 @@ ecore_x_window_key_grab(Ecore_X_Window win,
 
    for (i = 0; i < 8; i++)
      xcb_grab_key(_ecore_xcb_conn, 0, win, m | locks[i],
-                  keycode, XCB_GRAB_MODE_SYNC, XCB_GRAB_MODE_ASYNC);
+                  keycode, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC);
    _ecore_xcb_key_grabs_num++;
    t = realloc(_ecore_xcb_key_grabs,
                _ecore_xcb_key_grabs_num * sizeof(Ecore_X_Window));
diff --git a/src/lib/ecore_x/xlib/ecore_x.c b/src/lib/ecore_x/xlib/ecore_x.c
index c1fb140..d1b9896 100644
--- a/src/lib/ecore_x/xlib/ecore_x.c
+++ b/src/lib/ecore_x/xlib/ecore_x.c
@@ -1892,7 +1892,7 @@ _ecore_x_window_key_grab_internal(Ecore_X_Window win,
    for (i = 0; i < 8; i++)
      {
         XGrabKey(_ecore_x_disp, keycode, m | locks[i],
-                 win, False, GrabModeSync, GrabModeAsync);
+                 win, False, GrabModeAsync, GrabModeAsync);
         if (_ecore_xlib_sync) ecore_x_sync();
      }
 }

-- 


Reply via email to