diff options
Diffstat (limited to 'sway/config')
-rw-r--r-- | sway/config/output.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sway/config/output.c b/sway/config/output.c index 1d8cb3ef..16ec9339 100644 --- a/sway/config/output.c +++ b/sway/config/output.c @@ -9,6 +9,7 @@ #include <wlr/types/wlr_output_layout.h> #include "sway/config.h" #include "sway/output.h" +#include "sway/tree/root.h" #include "log.h" int output_name_cmp(const void *item, const void *data) { @@ -181,13 +182,11 @@ void apply_output_config(struct output_config *oc, struct sway_container *output struct wlr_output *wlr_output = output->sway_output->wlr_output; if (oc && oc->enabled == 0) { - struct sway_output *sway_output = output->sway_output; if (output->sway_output->bg_pid != 0) { terminate_swaybg(output->sway_output->bg_pid); output->sway_output->bg_pid = 0; } - container_destroy(output); - sway_output->swayc = NULL; + output_begin_destroy(output); wlr_output_layout_remove(root_container.sway_root->output_layout, wlr_output); return; @@ -290,7 +289,8 @@ void apply_output_config_to_outputs(struct output_config *oc) { bool wildcard = strcmp(oc->name, "*") == 0; char id[128]; struct sway_output *sway_output; - wl_list_for_each(sway_output, &root_container.sway_root->outputs, link) { + wl_list_for_each(sway_output, + &root_container.sway_root->all_outputs, link) { char *name = sway_output->wlr_output->name; output_get_identifier(id, sizeof(id), sway_output); if (wildcard || !strcmp(name, oc->name) || !strcmp(id, oc->name)) { @@ -350,7 +350,8 @@ static void default_output_config(struct output_config *oc, void create_default_output_configs(void) { struct sway_output *sway_output; - wl_list_for_each(sway_output, &root_container.sway_root->outputs, link) { + wl_list_for_each(sway_output, + &root_container.sway_root->all_outputs, link) { char *name = sway_output->wlr_output->name; struct output_config *oc = new_output_config(name); default_output_config(oc, sway_output->wlr_output); |