swayfx/sway/desktop
Simon Ser 5432f00adf config/output: don't change output state before commit
Previously, we called output_disable prior to wlr_output_commit. This
mutates Sway's output state before the output commit actually succeeds.
This results in Sway's state getting out-of-sync with wlroots'.

An alternative fix [1] was to revert the changes made by output_disable
in case of failure. This is a little complicated. Instead, this patch
makes it so Sway's internal state is never changed before a successful
wlr_output commit.

We had two output flags: enabled and configured. However enabled was set
prior to the output becoming enabled, and was used to prevent the output
event handlers (specifically, the mode handler) from calling
apply_output_config again (infinite loop).

Rename enabled to enabling and use it exclusively for this purpose.
Rename configure to enabled, because that's what it really means.

[1]: https://github.com/swaywm/sway/pull/5521

Closes: https://github.com/swaywm/sway/issues/5483
2020-07-10 18:18:27 -04:00
..
desktop.c Stop using wlr_output->{lx,ly} 2019-03-11 12:43:01 -04:00
idle_inhibit_v1.c Add views idle inhibition status in get_tree output 2020-05-29 17:29:41 -04:00
layer_shell.c change apply_exclusive() to closer match layer shell protocol 2020-03-30 17:45:05 +02:00
output.c config/output: don't change output state before commit 2020-07-10 18:18:27 -04:00
render.c Add support for viewporter 2020-06-17 10:18:58 -06:00
surface.c Make handle_destroy and output_repaint_timer_handler static 2020-03-04 03:09:43 +01:00
transaction.c transaction: Mark client resize immediately ready 2020-06-30 10:59:33 +02:00
xdg_shell.c transaction: Mark client resize immediately ready 2020-06-30 10:59:33 +02:00
xwayland.c transaction: Mark client resize immediately ready 2020-06-30 10:59:33 +02:00