[PATCH] Fix locking bugs with XIAllowTouchEvents() and XIUngrabTouchBegin()
otaylor at redhat.com
otaylor at redhat.com
Fri Jul 11 10:54:35 PDT 2014
From: "Owen W. Taylor" <otaylor at fishsoup.net>
Fix two places where the display was double locked when an API
function chained to an implementation that also locks the display.
---
src/XIAllowEvents.c | 6 +-----
src/XIPassiveGrab.c | 1 +
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/src/XIAllowEvents.c b/src/XIAllowEvents.c
index c8d997a..b0be6bb 100644
--- a/src/XIAllowEvents.c
+++ b/src/XIAllowEvents.c
@@ -92,11 +92,7 @@ XIAllowTouchEvents(Display *dpy, int deviceid, unsigned int touchid,
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);
--
1.9.3
More information about the xorg-devel
mailing list