swayfx/sway/desktop
Tudor Brindus cc8d318aa1 transaction: make transaction collapsing smarter with > 2 views
Sway maintains a list of pending transactions, and tries to merge
consecutive transactions applying to the same views into one. Given
a pending transactions list on views {A, B, C} of:

  A -> A' -> A'' -> B -> B' -> B''

Sway will collapse the transactions into just A'' -> B''. This works
fine when doing things like resizing views by their border. However,
when interactively resizing layouts like H[V[A B] C], we end up with
pending transaction lists like:

  A -> B -> C -> A' -> B' -> C' -> A'' -> B'' -> C''

Previously, Sway would not be able to simplify this transaction list,
and execute many more transactions than would be necessary (the final
state is determined by {A'', B'', C''}).

After this commit, the transaction list gets simplified to A'' -> B'' ->
C'', resolving performance problems (that were particularly noticeable
with high-refresh-rate mice).

Fixes #5736.
2020-10-19 01:40:10 +02: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 Fix incorrect format specifiers 2020-07-30 22:02:42 -04:00
output.c Use wlr_output_event_commit 2020-08-27 13:57:10 -06:00
render.c desktop/render: show indicators for top-level split 2020-10-04 20:54:58 -04:00
surface.c Make handle_destroy and output_repaint_timer_handler static 2020-03-04 03:09:43 +01:00
transaction.c transaction: make transaction collapsing smarter with > 2 views 2020-10-19 01:40:10 +02:00
xdg_shell.c transaction: validate X transaction completions by geometry, not size 2020-10-18 22:37:42 +02:00
xwayland.c transaction: validate X transaction completions by geometry, not size 2020-10-18 22:37:42 +02:00