diff options
author | Owen W. Taylor <otaylor@fishsoup.net> | 2014-07-11 15:13:54 -0400 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-07-14 08:46:29 +1000 |
commit | b731d1357d993663ee6b28d6627bdeba69b60dd2 (patch) | |
tree | a2619e2ddda01b72bb6317f3a77f2f23188d5032 | |
parent | 0250f40fb7c9cb7d542189b9cd37e0ae75309729 (diff) |
Fix locking bugs with XIAllowTouchEvents() and XIUngrabTouchBegin()
Fix two places where the display was double locked when an API
function chained to an implementation that also locks the display.
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | src/XIAllowEvents.c | 7 | ||||
-rw-r--r-- | src/XIPassiveGrab.c | 1 |
2 files changed, 2 insertions, 6 deletions
diff --git a/src/XIAllowEvents.c b/src/XIAllowEvents.c index c8d997a..2468fce 100644 --- a/src/XIAllowEvents.c +++ b/src/XIAllowEvents.c @@ -86,17 +86,12 @@ Status XIAllowTouchEvents(Display *dpy, int deviceid, unsigned int touchid, Window grab_window, int event_mode) { - int status; XExtDisplayInfo *extinfo = XInput_find_display(dpy); LockDisplay(dpy); if (_XiCheckExtInit(dpy, XInput_2_2, extinfo) == -1) return (NoSuchExtension); - - status = _XIAllowEvents(dpy, deviceid, event_mode, CurrentTime, touchid, grab_window); - UnlockDisplay(dpy); - SyncHandle(); - return status; + return _XIAllowEvents(dpy, deviceid, event_mode, CurrentTime, touchid, grab_window); } diff --git a/src/XIPassiveGrab.c b/src/XIPassiveGrab.c index 88f1aff..c743516 100644 --- a/src/XIPassiveGrab.c +++ b/src/XIPassiveGrab.c @@ -249,6 +249,7 @@ XIUngrabTouchBegin(Display* display, int deviceid, Window grab_window, LockDisplay(display); if (_XiCheckExtInit(display, XInput_2_2, extinfo) == -1) return -1; + UnlockDisplay(display); return _XIPassiveUngrabDevice(display, deviceid, XIGrabtypeTouchBegin, 0, grab_window, num_modifiers, modifiers); |