summaryrefslogtreecommitdiff
path: root/xserver/Xi
diff options
context:
space:
mode:
authorAntoine Jacoutot <ajacoutot@cvs.openbsd.org>2013-05-19 07:20:39 +0000
committerAntoine Jacoutot <ajacoutot@cvs.openbsd.org>2013-05-19 07:20:39 +0000
commitcd56f231c0a09a174e928330826275700c5cc149 (patch)
treefcb8c4b691873055d3d6aca400f3add2cc79c695 /xserver/Xi
parent0327513c7919c02f3e1cf3fea27a911c8a4c7a63 (diff)
Merge the following commit from upstream:
Touch: Fix duplicate TouchBegin selection with virtual devices http://cgit.freedesktop.org/xorg/xserver/commit/?id=314776eb369ca2e438907795ae030dd743c281fc This fixes gtk+3 applications crashing with 'BadImplementation' error. ok matthieu@
Diffstat (limited to 'xserver/Xi')
-rw-r--r--xserver/Xi/xiselectev.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/xserver/Xi/xiselectev.c b/xserver/Xi/xiselectev.c
index 43a67c833..c71dcc0db 100644
--- a/xserver/Xi/xiselectev.c
+++ b/xserver/Xi/xiselectev.c
@@ -180,8 +180,14 @@ ProcXISelectEvents(ClientPtr client)
if (CLIENT_ID(iclient->resource) == client->index)
continue;
- dixLookupDevice(&dummy, evmask->deviceid, serverClient,
- DixReadAccess);
+ if (evmask->deviceid == XIAllDevices)
+ dummy = inputInfo.all_devices;
+ else if (evmask->deviceid == XIAllMasterDevices)
+ dummy = inputInfo.all_master_devices;
+ else
+ dixLookupDevice(&dummy, evmask->deviceid, serverClient,
+ DixReadAccess);
+
if (!dummy)
return BadImplementation; /* this shouldn't happen */