diff --git a/backend/wayland/seat.c b/backend/wayland/seat.c index 133f5403..1697616c 100644 --- a/backend/wayland/seat.c +++ b/backend/wayland/seat.c @@ -391,9 +391,16 @@ void destroy_wl_seats(struct wlr_wl_backend *wl) { return; } + if (seat->touch) { + wl_touch_destroy(seat->touch); + } if (seat->pointer) { wl_pointer_destroy(seat->pointer); } + if (seat->keyboard && !wl->started) { + // early termination will not be handled by input_device_destroy + wl_keyboard_destroy(seat->keyboard); + } free(seat->name); if (seat->wl_seat) { wl_seat_destroy(seat->wl_seat);