diff options
-rw-r--r-- | sway/config.c | 4 | ||||
-rw-r--r-- | sway/config/output.c | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/sway/config.c b/sway/config.c index 64093aca..4f92b403 100644 --- a/sway/config.c +++ b/sway/config.c | |||
@@ -441,6 +441,10 @@ bool load_main_config(const char *file, bool is_active, bool validating) { | |||
441 | config->reloading = true; | 441 | config->reloading = true; |
442 | config->active = true; | 442 | config->active = true; |
443 | 443 | ||
444 | if (old_config->swaybg_client != NULL) { | ||
445 | wl_client_destroy(old_config->swaybg_client); | ||
446 | } | ||
447 | |||
444 | if (old_config->swaynag_config_errors.client != NULL) { | 448 | if (old_config->swaynag_config_errors.client != NULL) { |
445 | wl_client_destroy(old_config->swaynag_config_errors.client); | 449 | wl_client_destroy(old_config->swaynag_config_errors.client); |
446 | } | 450 | } |
diff --git a/sway/config/output.c b/sway/config/output.c index fb8a9ee5..0022485b 100644 --- a/sway/config/output.c +++ b/sway/config/output.c | |||
@@ -482,9 +482,11 @@ void free_output_config(struct output_config *oc) { | |||
482 | 482 | ||
483 | static void handle_swaybg_client_destroy(struct wl_listener *listener, | 483 | static void handle_swaybg_client_destroy(struct wl_listener *listener, |
484 | void *data) { | 484 | void *data) { |
485 | wl_list_remove(&config->swaybg_client_destroy.link); | 485 | struct sway_config *sway_config = |
486 | wl_list_init(&config->swaybg_client_destroy.link); | 486 | wl_container_of(listener, sway_config, swaybg_client_destroy); |
487 | config->swaybg_client = NULL; | 487 | wl_list_remove(&sway_config->swaybg_client_destroy.link); |
488 | wl_list_init(&sway_config->swaybg_client_destroy.link); | ||
489 | sway_config->swaybg_client = NULL; | ||
488 | } | 490 | } |
489 | 491 | ||
490 | static bool _spawn_swaybg(char **command) { | 492 | static bool _spawn_swaybg(char **command) { |