summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/config.h1
-rw-r--r--sway/commands.c9
-rw-r--r--sway/config.c2
3 files changed, 11 insertions, 1 deletions
diff --git a/include/config.h b/include/config.h
index 8338033c..3cbe7ce0 100644
--- a/include/config.h
+++ b/include/config.h
@@ -98,6 +98,7 @@ char *do_var_replacement(char *str);
98/** Sets up a WLC output handle based on a given output_config. 98/** Sets up a WLC output handle based on a given output_config.
99 */ 99 */
100void apply_output_config(struct output_config *oc, swayc_t *output); 100void apply_output_config(struct output_config *oc, swayc_t *output);
101void free_output_config(struct output_config *oc);
101 102
102/** 103/**
103 * Global config singleton. 104 * Global config singleton.
diff --git a/sway/commands.c b/sway/commands.c
index 2cfda07c..f194681e 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -733,6 +733,15 @@ static struct cmd_results *cmd_output(int argc, char **argv) {
733 } 733 }
734 } 734 }
735 735
736 for (i = 0; i < config->output_configs->length; ++i) {
737 struct output_config *oc = config->output_configs->items[i];
738 if (strcmp(oc->name, output->name) == 0) {
739 // replace existing config
740 list_del(config->output_configs, i);
741 free_output_config(oc);
742 break;
743 }
744 }
736 list_add(config->output_configs, output); 745 list_add(config->output_configs, output);
737 746
738 sway_log(L_DEBUG, "Config stored for output %s (%d x %d @ %d, %d)", 747 sway_log(L_DEBUG, "Config stored for output %s (%d x %d @ %d, %d)",
diff --git a/sway/config.c b/sway/config.c
index 0b25ee60..ce6d8baf 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -36,7 +36,7 @@ static void free_mode(struct sway_mode *mode) {
36 free(mode); 36 free(mode);
37} 37}
38 38
39static void free_output_config(struct output_config *oc) { 39void free_output_config(struct output_config *oc) {
40 free(oc->name); 40 free(oc->name);
41 free(oc); 41 free(oc);
42} 42}