sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit f58f054c87843eb27acc94cc19914d369738a671
parent b4950e2a6d35d7db06309f4b8f5222a7fc65a059
Author: Tadeo Kondrak <me@tadeo.ca>
Date:   Tue, 26 Jan 2021 13:47:54 -0700

Fix incorrect damage being applied on popups

To reproduce:

- Open a floating window and a popup that hangs over the bottom or right
- Move the window in the direction of the popup overhang
- The previous position of the popup is damaged, not the new one

Diffstat:
Msway/desktop/transaction.c | 14+++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c @@ -258,6 +258,13 @@ static void apply_container_state(struct sway_container *container, } } + // If the view hasn't responded to the configure, center it within + // the container. This is important for fullscreen views which + // refuse to resize to the size of the output. + if (view && view->surface) { + view_center_surface(view); + } + // Damage the new location desktop_damage_whole_container(container); if (view && view->surface) { @@ -271,13 +278,6 @@ static void apply_container_state(struct sway_container *container, desktop_damage_box(&box); } - // If the view hasn't responded to the configure, center it within - // the container. This is important for fullscreen views which - // refuse to resize to the size of the output. - if (view && view->surface) { - view_center_surface(view); - } - if (!container->node.destroying) { container_discover_outputs(container); }