backend/wayland: implement multi-output touch

The wayland backend mapped every touch event to the first output and
carried a TODO asking for multi-output support. Track the output each
touch point belongs to: on touch down, resolve it from the event's
wl_surface (falling back to the first output), store it per touch id, and
convert coordinates against that output for down and motion events. This
makes touch work correctly when the backend drives multiple outputs.

Closes #4102
This commit is contained in:
Lasse Heitgres 2026-06-09 13:15:53 +02:00
parent fc1cc7656a
commit a6b3d52f5d
2 changed files with 60 additions and 21 deletions

View file

@ -151,6 +151,7 @@ struct wlr_wl_pointer {
struct wlr_wl_touch_points {
int32_t ids[64];
struct wlr_wl_output *outputs[64];
size_t len;
};