xwayland: Update surface window from xwl_unrealize_window

Signed-off-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2135>
This commit is contained in:
Michel Dänzer 2024-12-24 15:02:00 +01:00 committed by Olivier Fourdan
parent e8f4522312
commit ceb313f277

View file

@ -1779,19 +1779,23 @@ xwl_unrealize_window(WindowPtr window)
{
ScreenPtr screen = window->drawable.pScreen;
struct xwl_screen *xwl_screen = xwl_screen_get(screen);
struct xwl_window *xwl_window = xwl_window_get(window);
struct xwl_window *xwl_window = xwl_window_from_window(window);
Bool ret;
if (xwl_window) {
unregister_damage(xwl_window);
xwl_window_dispose(xwl_window);
}
screen->UnrealizeWindow = xwl_screen->UnrealizeWindow;
ret = (*screen->UnrealizeWindow) (window);
xwl_screen->UnrealizeWindow = screen->UnrealizeWindow;
screen->UnrealizeWindow = xwl_unrealize_window;
if (xwl_window) {
if (window == xwl_window->toplevel) {
unregister_damage(xwl_window);
xwl_window_dispose(xwl_window);
} else if (window == xwl_window->surface_window) {
xwl_window_update_surface_window(xwl_window);
}
}
return ret;
}