aboutsummaryrefslogtreecommitdiffstats
path: root/sway/config/output.c
diff options
context:
space:
mode:
authorLibravatar Brian Ashworth <bosrsf04@gmail.com>2019-03-16 22:45:06 -0400
committerLibravatar emersion <contact@emersion.fr>2019-03-17 18:05:27 +0200
commit0327c999d7f69de6356b3b30c19b131d029f6e95 (patch)
tree727850939e018a9478e05784bb3b87d0363bf3f4 /sway/config/output.c
parentIntroduce default seatop (diff)
downloadsway-0327c999d7f69de6356b3b30c19b131d029f6e95.tar.gz
sway-0327c999d7f69de6356b3b30c19b131d029f6e95.tar.zst
sway-0327c999d7f69de6356b3b30c19b131d029f6e95.zip
config/output: handle wildcard in get_output_config
In #3916, I overlooked that `get_output_config` does not handle wildcards unless the config is reloading, which is a remnant of older iterations of the output config handling that went unnoticed due to `output_find_config` handling it. With the current version of the output config handling, having `get_output_config` handle wildcard configs is actually preferable. This fixes having only a wildcard output config in the config file or when connecting/enabling a new output with only a wildcard config existing.
Diffstat (limited to 'sway/config/output.c')
-rw-r--r--sway/config/output.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/sway/config/output.c b/sway/config/output.c
index 5656e2c1..44aae03a 100644
--- a/sway/config/output.c
+++ b/sway/config/output.c
@@ -493,19 +493,20 @@ static struct output_config *get_output_config(char *identifier,
493 free(result->name); 493 free(result->name);
494 result->name = strdup(identifier); 494 result->name = strdup(identifier);
495 merge_output_config(result, oc_id); 495 merge_output_config(result, oc_id);
496 } else if (config->reloading) { 496 } else {
497 // Neither config exists, but we need to reset the output so create a
498 // default config for the output and if a wildcard config exists, merge
499 // that on top
500 free(result->name);
501 result->name = strdup("*");
502 i = list_seq_find(config->output_configs, output_name_cmp, "*"); 497 i = list_seq_find(config->output_configs, output_name_cmp, "*");
503 if (i >= 0) { 498 if (i >= 0) {
499 // No name or identifier config, but there is a wildcard config
500 free(result->name);
501 result->name = strdup("*");
504 merge_output_config(result, config->output_configs->items[i]); 502 merge_output_config(result, config->output_configs->items[i]);
503 } else if (!config->reloading) {
504 // No name, identifier, or wildcard config. Since we are not
505 // reloading with defaults, the output config will be empty, so
506 // just return NULL
507 free_output_config(result);
508 result = NULL;
505 } 509 }
506 } else {
507 free_output_config(result);
508 result = NULL;
509 } 510 }
510 511
511 free(id_on_name); 512 free(id_on_name);