aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/dix
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-07-12 08:25:37 +0200
committermarha <marha@users.sourceforge.net>2013-07-12 08:25:37 +0200
commit66b46719d55e60d53b42858770d6ac40d079ab13 (patch)
treeaad06d011ed8b820685f72ada34e56ee0f2580c6 /xorg-server/dix
parentf8f0209a691e0d0838d1ef9d602ebacafee2a233 (diff)
parentffce4319c2fb6f4f663cc5a9660e1d5837fcde87 (diff)
downloadvcxsrv-66b46719d55e60d53b42858770d6ac40d079ab13.tar.gz
vcxsrv-66b46719d55e60d53b42858770d6ac40d079ab13.tar.bz2
vcxsrv-66b46719d55e60d53b42858770d6ac40d079ab13.zip
Merge remote-tracking branch 'origin/released'
* origin/released: libxtrans fontconfig mesa xserver git update 12 Jul 2013
Diffstat (limited to 'xorg-server/dix')
-rwxr-xr-xxorg-server/dix/events.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c
index 0296b7865..a77415377 100755
--- a/xorg-server/dix/events.c
+++ b/xorg-server/dix/events.c
@@ -1525,13 +1525,20 @@ DeactivatePointerGrab(DeviceIntPtr mouse)
for (i = 0; !wasPassive && mouse->touch && i < mouse->touch->num_touches; i++) {
TouchPointInfoPtr ti = mouse->touch->touches + i;
if (ti->active && TouchResourceIsOwner(ti, grab_resource)) {
+ int mode = XIRejectTouch;
/* Rejecting will generate a TouchEnd, but we must not
emulate a ButtonRelease here. So pretend the listener
already has the end event */
if (grab->grabtype == CORE || grab->grabtype == XI ||
- !xi2mask_isset(mouse->deviceGrab.grab->xi2mask, mouse, XI_TouchBegin))
+ !xi2mask_isset(mouse->deviceGrab.grab->xi2mask, mouse, XI_TouchBegin)) {
+ mode = XIAcceptTouch;
+ /* NOTE: we set the state here, but
+ * ProcessTouchOwnershipEvent() will still call
+ * TouchEmitTouchEnd for this listener. The other half of
+ * this hack is in DeliverTouchEndEvent */
ti->listeners[0].state = LISTENER_HAS_END;
- TouchListenerAcceptReject(mouse, ti, 0, XIRejectTouch);
+ }
+ TouchListenerAcceptReject(mouse, ti, 0, mode);
}
}