diff options
Diffstat (limited to 'xorg-server/Xi/exevents.c')
-rw-r--r-- | xorg-server/Xi/exevents.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c index 1fe284dfc..8172f611d 100644 --- a/xorg-server/Xi/exevents.c +++ b/xorg-server/Xi/exevents.c @@ -106,7 +106,7 @@ int XIShouldNotify(ClientPtr client, DeviceIntPtr dev) { DeviceIntPtr current_ptr = PickPointer(client); - DeviceIntPtr current_kbd = GetPairedDevice(current_ptr); + DeviceIntPtr current_kbd = GetMaster(current_ptr, KEYBOARD_OR_FLOAT); if (dev == current_kbd || dev == current_ptr) return 1; @@ -905,13 +905,13 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device) if (IsPointerDevice(device)) { - kbd = GetPairedDevice(device); + kbd = GetMaster(device, KEYBOARD_OR_FLOAT); mouse = device; if (kbd && !kbd->key) /* can happen with floating SDs */ kbd = NULL; } else { - mouse = GetPairedDevice(device); + mouse = GetMaster(device, POINTER_OR_FLOAT); kbd = device; if (!mouse->valuator || !mouse->button) /* may be float. SDs */ mouse = NULL; @@ -1499,7 +1499,7 @@ GrabKey(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr modifier_device, rc = CheckGrabValues(client, param); if (rc != Success) return rc; - if (k == NULL) + if ((dev->id != XIAllDevices && dev->id != XIAllMasterDevices) && k == NULL) return BadMatch; if (grabtype == GRABTYPE_XI) { |