aboutsummaryrefslogtreecommitdiffstats
path: root/sway
diff options
context:
space:
mode:
authorLibravatar Kenny Levinsen <kl@kl.wtf>2024-03-16 00:57:11 +0100
committerLibravatar Simon Ser <contact@emersion.fr>2024-03-28 10:45:20 +0100
commit923f642b704022442cc3245a2fa13278341c14e0 (patch)
tree31e18e0dbbc78f5d4e2f2c2f2f49c81e02fe9543 /sway
parentconfig/output: Introduce apply_output_configs (diff)
downloadsway-923f642b704022442cc3245a2fa13278341c14e0.tar.gz
sway-923f642b704022442cc3245a2fa13278341c14e0.tar.zst
sway-923f642b704022442cc3245a2fa13278341c14e0.zip
output/config: Add apply_all_output_configs
Apply all output configs as they are. This differs from apply_output_config_to_outputs, which tries to apply a specific output config.
Diffstat (limited to 'sway')
-rw-r--r--sway/config/output.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/sway/config/output.c b/sway/config/output.c
index de9515e2..5bf5bed5 100644
--- a/sway/config/output.c
+++ b/sway/config/output.c
@@ -809,6 +809,34 @@ out:
809 return ok; 809 return ok;
810} 810}
811 811
812void apply_all_output_configs(void) {
813 size_t configs_len = wl_list_length(&root->all_outputs);
814 struct matched_output_config *configs = calloc(configs_len, sizeof(*configs));
815 if (!configs) {
816 return;
817 }
818
819 int config_idx = 0;
820 struct sway_output *sway_output;
821 wl_list_for_each(sway_output, &root->all_outputs, link) {
822 if (sway_output == root->fallback_output) {
823 configs_len--;
824 continue;
825 }
826
827 struct matched_output_config *config = &configs[config_idx++];
828 config->output = sway_output;
829 config->config = find_output_config(sway_output);
830 }
831
832 apply_output_configs(configs, configs_len, false);
833 for (size_t idx = 0; idx < configs_len; idx++) {
834 struct matched_output_config *cfg = &configs[idx];
835 free_output_config(cfg->config);
836 }
837 free(configs);
838}
839
812void apply_output_config_to_outputs(struct output_config *oc) { 840void apply_output_config_to_outputs(struct output_config *oc) {
813 size_t configs_len = wl_list_length(&root->all_outputs); 841 size_t configs_len = wl_list_length(&root->all_outputs);
814 struct matched_output_config *configs = calloc(configs_len, sizeof(*configs)); 842 struct matched_output_config *configs = calloc(configs_len, sizeof(*configs));