diff options
Diffstat (limited to 'sway/config.c')
-rw-r--r-- | sway/config.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sway/config.c b/sway/config.c index 7cb27d95..ee1c42df 100644 --- a/sway/config.c +++ b/sway/config.c | |||
@@ -141,11 +141,18 @@ static void destroy_removed_seats(struct sway_config *old_config, | |||
141 | int i; | 141 | int i; |
142 | for (i = 0; i < old_config->seat_configs->length; i++) { | 142 | for (i = 0; i < old_config->seat_configs->length; i++) { |
143 | seat_config = old_config->seat_configs->items[i]; | 143 | seat_config = old_config->seat_configs->items[i]; |
144 | // Skip the wildcard seat config, it won't have a matching real seat. | ||
145 | if (strcmp(seat_config->name, "*") == 0) { | ||
146 | continue; | ||
147 | } | ||
148 | |||
144 | /* Also destroy seats that aren't present in new config */ | 149 | /* Also destroy seats that aren't present in new config */ |
145 | if (new_config && list_seq_find(new_config->seat_configs, | 150 | if (new_config && list_seq_find(new_config->seat_configs, |
146 | seat_name_cmp, seat_config->name) < 0) { | 151 | seat_name_cmp, seat_config->name) < 0) { |
147 | seat = input_manager_get_seat(seat_config->name); | 152 | seat = input_manager_get_seat(seat_config->name, false); |
148 | seat_destroy(seat); | 153 | if (seat) { |
154 | seat_destroy(seat); | ||
155 | } | ||
149 | } | 156 | } |
150 | } | 157 | } |
151 | } | 158 | } |