mirror of
https://github.com/cage-kiosk/cage.git
synced 2026-02-21 01:40:59 -05:00
seat: destroy keyboard groups on shutdown
These are not destroyed automatically because they are entirely managed by the compositor.
This commit is contained in:
parent
6b1ba34a4a
commit
e21c155bcd
1 changed files with 15 additions and 0 deletions
15
seat.c
15
seat.c
|
|
@ -380,6 +380,16 @@ cleanup:
|
||||||
free(cg_group);
|
free(cg_group);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
keyboard_group_destroy(struct cg_keyboard_group *keyboard_group)
|
||||||
|
{
|
||||||
|
wl_list_remove(&keyboard_group->key.link);
|
||||||
|
wl_list_remove(&keyboard_group->modifiers.link);
|
||||||
|
wlr_keyboard_group_destroy(keyboard_group->wlr_group);
|
||||||
|
wl_list_remove(&keyboard_group->link);
|
||||||
|
free(keyboard_group);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handle_new_keyboard(struct cg_seat *seat, struct wlr_keyboard *keyboard, bool virtual)
|
handle_new_keyboard(struct cg_seat *seat, struct wlr_keyboard *keyboard, bool virtual)
|
||||||
{
|
{
|
||||||
|
|
@ -893,6 +903,11 @@ seat_destroy(struct cg_seat *seat)
|
||||||
wl_list_remove(&seat->request_start_drag.link);
|
wl_list_remove(&seat->request_start_drag.link);
|
||||||
wl_list_remove(&seat->start_drag.link);
|
wl_list_remove(&seat->start_drag.link);
|
||||||
|
|
||||||
|
struct cg_keyboard_group *keyboard_group, *keyboard_group_tmp;
|
||||||
|
wl_list_for_each_safe (keyboard_group, keyboard_group_tmp, &seat->keyboard_groups, link) {
|
||||||
|
keyboard_group_destroy(keyboard_group);
|
||||||
|
}
|
||||||
|
|
||||||
// Destroying the wlr seat will trigger the destroy handler on our seat,
|
// Destroying the wlr seat will trigger the destroy handler on our seat,
|
||||||
// which will in turn free it.
|
// which will in turn free it.
|
||||||
wlr_seat_destroy(seat->seat);
|
wlr_seat_destroy(seat->seat);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue