config reload: destroy old seat when removed from config

This adds new sway_seat_destroy and sway_cursor_destroy helpers
and compare new and old config on free
This commit is contained in:
Dominique Martinet 2018-01-16 21:16:04 +01:00
parent 869be4378d
commit 5766f426aa
7 changed files with 45 additions and 1 deletions

View file

@ -21,6 +21,16 @@ static void seat_device_destroy(struct sway_seat_device *seat_device) {
free(seat_device);
}
void sway_seat_destroy(struct sway_seat *seat) {
struct sway_seat_device *seat_device, *next;
wl_list_for_each_safe(seat_device, next, &seat->devices, link) {
seat_device_destroy(seat_device);
}
sway_cursor_destroy(seat->cursor);
wl_list_remove(&seat->link);
wlr_seat_destroy(seat->wlr_seat);
}
struct sway_seat *sway_seat_create(struct sway_input_manager *input,
const char *seat_name) {
struct sway_seat *seat = calloc(1, sizeof(struct sway_seat));