dix: change the filters to be per-device.

If we have one global filter, one pointer may change the filter value and
affect another pointer.

Reproduceable effect:
blackbox and xterm, start dragging xterm then click anywhere with the other
pointer (attached to different masterd device!).  The button release resets
the filter[Motion_Filter(button)] value, thus stopping dragging and no event
is sent to the client anymore.
Having the filters set per device gets around this.
This commit is contained in:
Peter Hutterer
2007-12-04 19:07:46 +10:30
parent 0931f40bf1
commit f44d7dcb5f
4 changed files with 52 additions and 29 deletions

View File

@@ -345,6 +345,7 @@ extern void SetVendorString(char *string);
/* events.c */
extern void SetMaskForEvent(
int /* deviceid */,
Mask /* mask */,
int /* event */);