wayland: add wayl_bindings_reset()

This function resets (clears) all key- and mouse-bindings associated
with the seat.
This commit is contained in:
Daniel Eklöf 2022-02-07 19:52:15 +01:00
parent e1a4b5c5a8
commit 026785b777
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 13 additions and 5 deletions

View file

@ -168,6 +168,16 @@ key_bindings_destroy(key_binding_list_t *bindings)
}
}
void
wayl_bindings_reset(struct seat *seat)
{
key_bindings_destroy(&seat->kbd.bindings.key);
key_bindings_destroy(&seat->kbd.bindings.search);
key_bindings_destroy(&seat->kbd.bindings.url);
key_bindings_destroy(&seat->mouse.bindings);
}
static void
seat_destroy(struct seat *seat)
{
@ -175,11 +185,7 @@ seat_destroy(struct seat *seat)
return;
tll_free(seat->mouse.buttons);
key_bindings_destroy(&seat->kbd.bindings.key);
key_bindings_destroy(&seat->kbd.bindings.search);
key_bindings_destroy(&seat->kbd.bindings.url);
key_bindings_destroy(&seat->mouse.bindings);
wayl_bindings_reset(seat);
if (seat->kbd.xkb_compose_state != NULL)
xkb_compose_state_unref(seat->kbd.xkb_compose_state);

View file

@ -515,3 +515,5 @@ bool wayl_win_subsurface_new_with_custom_parent(
struct wl_window *win, struct wl_surface *parent,
struct wl_surf_subsurf *surf);
void wayl_win_subsurface_destroy(struct wl_surf_subsurf *surf);
void wayl_bindings_reset(struct seat *seat);