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 |
||
|---|---|---|
| .. | ||
| cursor.c | ||
| input-manager.c | ||
| keyboard.c | ||
| libinput.c | ||
| seat.c | ||
| seatop_default.c | ||
| seatop_down.c | ||
| seatop_move_floating.c | ||
| seatop_move_tiling.c | ||
| seatop_resize_floating.c | ||
| seatop_resize_tiling.c | ||
| switch.c | ||
| tablet.c | ||
| text_input.c | ||