Add a deviceMask to the GrabRec and don't interfere with passiveGrabs.

This quickfixes event delivery problems with XI events when a grab was on.
deviceMask is only used when the grab was from a ButtonPress to preserve
potential XI event masks.

This is not an ideal solution but it works until I have time to work on
PassiveGrabs.
This commit is contained in:
Peter Hutterer 2007-05-31 17:05:14 +09:30
commit 26b21157cf
3 changed files with 25 additions and 3 deletions

View file

@ -126,6 +126,9 @@ ProcessOtherEvent(xEventPtr xE, DeviceIntPtr device, int count)
ValuatorClassPtr v = device->valuator;
deviceValuator *xV = (deviceValuator *) xE;
if (grab && grab->coreGrab && !device->deviceGrab.fromPassiveGrab)
return;
if (xE->u.u.type != DeviceValuator && xE->u.u.type != GenericEvent) {
DeviceIntPtr mouse = NULL, kbd = NULL;
GetSpritePosition(device, &rootX, &rootY);