swayfx/sway/desktop
Rouven Czerwinski 0adcf77f3f transaction: destroying nodes aren't hidden
Commit 37d7bc6998 ("transaction: Only wait for ack from visible
views") introduced a check which uses view_is_visible() to check if a view
is still visible on the screen. However view_is_visible() will early
return in case the node is in the destroying state. This is incorrect
for transactions, since a destroying view which is visible will trigger
configure events for other clients. This bug was visible when repeatedly
opening and closing two views side by side, since we ignore the
destroying node we get a frame where the still open view is shown with
the old configure values and the rest is the desktop background. The
next frame is than correct again.

Fix this by considering destroying views as visible, we correctly wait
for them and send the configure events to other views in time, fixing
the background flicker.

Fixes #6473

(cherry picked from commit e4909ab4a3514d9b3bfb01473cd3cd1704c8cd05)
2022-01-21 13:13:16 +01:00
..
desktop.c Stop using wlr_output->{lx,ly} 2019-03-11 12:43:01 -04:00
idle_inhibit_v1.c idle_inhibit: Fix tree view after changes in commit 152a559e 2021-10-04 16:25:35 +02:00
layer_shell.c Destroy sub-surfaces with parent layer-shell surface 2022-01-09 11:49:53 +01:00
output.c output: change output::destroy to output::disable 2021-12-17 14:39:48 +01:00
render.c Add focused_tab_title 2021-12-10 16:09:29 +01:00
surface.c Make handle_destroy and output_repaint_timer_handler static 2020-03-04 03:09:43 +01:00
transaction.c transaction: destroying nodes aren't hidden 2022-01-21 13:13:16 +01:00
xdg_shell.c xdg-shell: use toplevel geometry to adjust the popup box 2022-01-16 19:26:57 +01:00
xwayland.c xwayland: Clear wlr_xwayland_surface in handle_destroy 2021-10-19 10:42:19 +03:00