dix: don't copy the wrong event mask when activating a passive grab
GrabMask is a union of core, XI1 and XI2 masks. If a XI2 grab is activated, the value is a random pointer value, using it as mask has unpredictable effects. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net> Reviewed-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
dd3242c87a
commit
f793b5fd3e
|
@ -219,7 +219,10 @@ CreateGrab(int client, DeviceIntPtr device, DeviceIntPtr modDevice,
|
|||
grab->resource = FakeClientID(client);
|
||||
grab->device = device;
|
||||
grab->window = window;
|
||||
grab->eventMask = mask->core; /* same for XI */
|
||||
if (grabtype == CORE || grabtype == XI)
|
||||
grab->eventMask = mask->core; /* same for XI */
|
||||
else
|
||||
grab->eventMask = 0;
|
||||
grab->deviceMask = 0;
|
||||
grab->ownerEvents = param->ownerEvents;
|
||||
grab->keyboardMode = param->this_device_mode;
|
||||
|
|
Loading…
Reference in New Issue
Block a user