sway/sway
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
..
commands Reload command now matches i3's implementation 2020-07-07 17:15:57 -04:00
config config/output: don't change output state before commit 2020-07-10 18:18:27 -04:00
desktop config/output: don't change output state before commit 2020-07-10 18:18:27 -04:00
input config/output: don't change output state before commit 2020-07-10 18:18:27 -04:00
tree config/output: don't change output state before commit 2020-07-10 18:18:27 -04:00
commands.c Remove code related to the security features 2020-05-21 10:57:00 +02:00
config.c Reload command now matches i3's implementation 2020-07-07 17:15:57 -04:00
criteria.c Introduce pid criteria token 2020-02-27 14:03:22 +01:00
decoration.c Fix double free when unmapping any view 2018-11-15 15:22:09 +10:00
ipc-json.c i3-compat: add GET_BINDING_STATE IPC command 2020-06-14 00:55:14 -04:00
ipc-server.c i3-compat: add GET_BINDING_STATE IPC command 2020-06-14 00:55:14 -04:00
main.c Log Sway version on startup 2020-06-11 08:44:09 -06:00
meson.build Remove code related to the security features 2020-05-21 10:57:00 +02:00
server.c Unset DISPLAY when wlr_xwayland fails 2020-07-02 23:55:56 -04:00
sway-bar.5.scd swaybar: complete barconfig_update event handling 2019-09-04 16:48:50 -10:00
sway-input.5.scd fix typos in sway-input.5.scd 2020-04-29 12:43:34 +02:00
sway-ipc.7.scd i3-compat: add GET_BINDING_STATE IPC command 2020-06-14 00:55:14 -04:00
sway-output.5.scd Simplify repaint scheduling documentation 2020-05-11 10:36:33 +02:00
sway.1.scd add dots to man 2020-04-14 10:10:35 +02:00
sway.5.scd Reload command now matches i3's implementation 2020-07-07 17:15:57 -04:00
swaynag.c Rename symbol set_cloexec to sway_set_cloexec, remove duplicates. 2019-11-01 12:41:08 -04:00
xdg_decoration.c Fix xdg-decoration unconfigured if set before first commit 2019-05-03 15:37:32 -06:00