Skip to content

wayland: Get device directly from clutter in get_grab_info() for touch case

When we call get_grab_info() to get the sequence, device and coordinates for a touch window drag, as the device we use the device from the MetaWaylandPointer, assuming that it's set to the core pointer.

In the case where there is no pointer device present on the seat (so no mouse nor touchpad), the wayland pointer remains disabled though, and pointer->device is NULL.

This means touch window dragging on hardware without pointer devices present is broken (because MetaWindowDrag assumes that there's a valid device passed in meta_window_drag_begin()). Fix it by taking the core pointer directly from ClutterSeat instead of going the extra detour through MetaWaylandPointer.

Merge request reports