diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2019-12-12 23:39:00 -0500 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2019-12-13 09:53:51 +0100 |
commit | f365ffef34cd4ea039a2a199682fc760c80de21d (patch) | |
tree | a8dd464d084b50de93bb66e35b74099ca17ed7a7 | |
parent | 2f84d6e349d12f3293c44268bc5c8551340e5787 (diff) |
input/keyboard: remove group listeners on destroy
This adds two missing calls to wl_list_remove to remove the key and
modifier listeners for the keyboard group's keyboard when destroying
the keyboard group. This fixes some crashes when changing the keymap of
the last keyboard in a group with a keyboard binding.
-rw-r--r-- | sway/input/keyboard.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c index 1d55c165..cac713ad 100644 --- a/sway/input/keyboard.c +++ b/sway/input/keyboard.c @@ -675,6 +675,8 @@ static void sway_keyboard_group_remove(struct sway_keyboard *keyboard) { struct sway_keyboard_group *sway_group = wlr_group->data; wlr_group->data = NULL; wl_list_remove(&sway_group->link); + wl_list_remove(&sway_group->keyboard_key.link); + wl_list_remove(&sway_group->keyboard_modifiers.link); sway_keyboard_destroy(sway_group->seat_device->keyboard); free(sway_group->seat_device->input_device); free(sway_group->seat_device); |