aboutsummaryrefslogtreecommitdiffstats
path: root/sway/config
diff options
context:
space:
mode:
authorLibravatar Simon Ser <contact@emersion.fr>2020-02-11 14:17:33 +0100
committerLibravatar Brian Ashworth <bosrsf04@gmail.com>2020-02-11 20:52:02 -0500
commitf5fa0c7124dde3438a22550aae017f824d20c93b (patch)
tree4da13f1062a73c8b6db9c31f795fc31df3379fe3 /sway/config
parentCall apply_output_config instead of output_enable (diff)
downloadsway-f5fa0c7124dde3438a22550aae017f824d20c93b.tar.gz
sway-f5fa0c7124dde3438a22550aae017f824d20c93b.tar.zst
sway-f5fa0c7124dde3438a22550aae017f824d20c93b.zip
Stop calling apply_output_config from output_enable
The only output_enable caller is now apply_output_config. Stop calling apply_output_config from output_enable to simplify the code and avoid the back-and-forth between these two functions. output_enable is now the symmetric of output_disable: it just marks the output as enabled and performs bookkeeping (e.g. creating teh default workspace). It is called from apply_output_config after the output commit, so that it can read the current output state and act accordingly. This change also allows us to avoid an extraneous wlr_output_commit. References: https://github.com/swaywm/sway/issues/4921
Diffstat (limited to 'sway/config')
-rw-r--r--sway/config/output.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/sway/config/output.c b/sway/config/output.c
index e1925c93..73d62aff 100644
--- a/sway/config/output.c
+++ b/sway/config/output.c
@@ -343,14 +343,6 @@ bool apply_output_config(struct output_config *oc, struct sway_output *output) {
343 } 343 }
344 wlr_output_enable(wlr_output, false); 344 wlr_output_enable(wlr_output, false);
345 return wlr_output_commit(wlr_output); 345 return wlr_output_commit(wlr_output);
346 } else if (!output->enabled) {
347 // Output is not enabled. Enable it, output_enable will call us again.
348 if (!oc || oc->dpms_state != DPMS_OFF) {
349 sway_log(SWAY_DEBUG, "Enabling output %s", oc->name);
350 wlr_output_enable(wlr_output, true);
351 wlr_output_commit(wlr_output);
352 }
353 return output_enable(output, oc);
354 } 346 }
355 347
356 if (!oc || oc->dpms_state != DPMS_OFF) { 348 if (!oc || oc->dpms_state != DPMS_OFF) {
@@ -440,6 +432,10 @@ bool apply_output_config(struct output_config *oc, struct sway_output *output) {
440 output->width = output_box->width; 432 output->width = output_box->width;
441 output->height = output_box->height; 433 output->height = output_box->height;
442 434
435 if ((!oc || oc->enabled) && !output->enabled) {
436 output_enable(output);
437 }
438
443 if (oc && oc->dpms_state == DPMS_OFF) { 439 if (oc && oc->dpms_state == DPMS_OFF) {
444 sway_log(SWAY_DEBUG, "Turning off output %s", oc->name); 440 sway_log(SWAY_DEBUG, "Turning off output %s", oc->name);
445 wlr_output_enable(wlr_output, false); 441 wlr_output_enable(wlr_output, false);