mirror of https://github.com/encounter/SDL.git
Added support for multiple seats with touch input on Wayland
This fixes bug https://github.com/libsdl-org/SDL/issues/4517
This commit is contained in:
parent
ff1b5e1bf7
commit
03c19efbd1
|
@ -941,13 +941,13 @@ seat_handle_capabilities(void *data, struct wl_seat *seat,
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((caps & WL_SEAT_CAPABILITY_TOUCH) && !input->touch) {
|
if ((caps & WL_SEAT_CAPABILITY_TOUCH) && !input->touch) {
|
||||||
SDL_AddTouch(1, SDL_TOUCH_DEVICE_DIRECT, "wayland_touch");
|
SDL_AddTouch((SDL_TouchID)seat, SDL_TOUCH_DEVICE_DIRECT, "wayland_touch");
|
||||||
input->touch = wl_seat_get_touch(seat);
|
input->touch = wl_seat_get_touch(seat);
|
||||||
wl_touch_set_user_data(input->touch, input);
|
wl_touch_set_user_data(input->touch, input);
|
||||||
wl_touch_add_listener(input->touch, &touch_listener,
|
wl_touch_add_listener(input->touch, &touch_listener,
|
||||||
input);
|
input);
|
||||||
} else if (!(caps & WL_SEAT_CAPABILITY_TOUCH) && input->touch) {
|
} else if (!(caps & WL_SEAT_CAPABILITY_TOUCH) && input->touch) {
|
||||||
SDL_DelTouch(1);
|
SDL_DelTouch((SDL_TouchID)seat);
|
||||||
wl_touch_destroy(input->touch);
|
wl_touch_destroy(input->touch);
|
||||||
input->touch = NULL;
|
input->touch = NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue