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
This commit is contained in:
Tadeo Kondrak 2021-01-26 13:47:54 -07:00 committed by Tudor Brindus
parent b4950e2a6d
commit f58f054c87

View file

@ -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);
}