aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/Xi/xiselectev.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/Xi/xiselectev.c')
-rw-r--r--xorg-server/Xi/xiselectev.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/xorg-server/Xi/xiselectev.c b/xorg-server/Xi/xiselectev.c
index 0e45cb8cb..ab1b6245f 100644
--- a/xorg-server/Xi/xiselectev.c
+++ b/xorg-server/Xi/xiselectev.c
@@ -180,8 +180,13 @@ ProcXISelectEvents(ClientPtr client)
if (CLIENT_ID(iclient->resource) == client->index)
continue;
- dixLookupDevice(&tmp, evmask->deviceid, serverClient,
- DixReadAccess);
+ if (evmask->deviceid == XIAllDevices)
+ tmp = inputInfo.all_devices;
+ else if (evmask->deviceid == XIAllMasterDevices)
+ tmp = inputInfo.all_master_devices;
+ else
+ dixLookupDevice(&tmp, evmask->deviceid, serverClient,
+ DixReadAccess);
if (!tmp)
return BadImplementation; /* this shouldn't happen */