diff --git a/backend/wayland/backend.c b/backend/wayland/backend.c index 1a156802..ddad1418 100644 --- a/backend/wayland/backend.c +++ b/backend/wayland/backend.c @@ -85,6 +85,7 @@ static void wlr_wl_backend_destroy(struct wlr_backend_state *state) { list_free(state->devices); list_free(state->outputs); + free(state->seatName); wlr_egl_free(&state->egl); if (state->seat) wl_seat_destroy(state->seat); diff --git a/backend/wayland/wl_seat.c b/backend/wayland/wl_seat.c index 88784828..7fb63cbe 100644 --- a/backend/wayland/wl_seat.c +++ b/backend/wayland/wl_seat.c @@ -258,6 +258,7 @@ static void seat_handle_capabilities(void *data, struct wl_seat *wl_seat, static void seat_handle_name(void *data, struct wl_seat *wl_seat, const char *name) { struct wlr_backend_state *state = data; assert(state->seat == wl_seat); + // Do we need to check if seatName was previously set for name change? state->seatName = strdup(name); } diff --git a/include/backend/wayland.h b/include/backend/wayland.h index 1ce4e135..be96128e 100644 --- a/include/backend/wayland.h +++ b/include/backend/wayland.h @@ -25,7 +25,7 @@ struct wlr_backend_state { struct wl_shell *shell; struct wl_shm *shm; struct wl_seat *seat; - const char *seatName; + char *seatName; }; struct wlr_output_state {