aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Brian Ashworth <bosrsf04@gmail.com>2019-12-12 23:39:00 -0500
committerLibravatar Simon Ser <contact@emersion.fr>2019-12-13 09:53:51 +0100
commitf365ffef34cd4ea039a2a199682fc760c80de21d (patch)
treea8dd464d084b50de93bb66e35b74099ca17ed7a7
parentAuto-detect output scale (diff)
downloadsway-f365ffef34cd4ea039a2a199682fc760c80de21d.tar.gz
sway-f365ffef34cd4ea039a2a199682fc760c80de21d.tar.zst
sway-f365ffef34cd4ea039a2a199682fc760c80de21d.zip
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.c2
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) {
675 struct sway_keyboard_group *sway_group = wlr_group->data; 675 struct sway_keyboard_group *sway_group = wlr_group->data;
676 wlr_group->data = NULL; 676 wlr_group->data = NULL;
677 wl_list_remove(&sway_group->link); 677 wl_list_remove(&sway_group->link);
678 wl_list_remove(&sway_group->keyboard_key.link);
679 wl_list_remove(&sway_group->keyboard_modifiers.link);
678 sway_keyboard_destroy(sway_group->seat_device->keyboard); 680 sway_keyboard_destroy(sway_group->seat_device->keyboard);
679 free(sway_group->seat_device->input_device); 681 free(sway_group->seat_device->input_device);
680 free(sway_group->seat_device); 682 free(sway_group->seat_device);