-
Daniel Boles authored
gdk_seat_default_grab() grabs POINTER_EVENTS if the capability is GDK_SEAT_CAPABILITY_ALL_POINTING. But that enumerator is a union that includes GDK_SEAT_CAPABILITY_TOUCH, but we never grabbed TOUCH_EVENTS, an unused macro that was presumably created with this purpose in mind. So, check which of the ALL_POINTING capabilities we have, and set the right mask of POINTER_EVENTS and/or TOUCH_EVENTS as required. As part of this, explicitly let TABLET_STYLUS take over pointer events, as this is the intended behaviour and was the effective result before. This should fix touch events being lost in migrating from Device.grab() to Seat.grab(GDK_SEAT_CAPABILITY_ALL_POINTING), as found by Inkscape. https://bugzilla.gnome.org/show_bug.cgi?id=781757
5c700cf5