xwayland: Update screen pixmap for root window in xwl_window_set_pixmap
If the old window pixmap was the screen pixmap.
Fixes screen->GetScreenPixmap() returning a stale pointer to a destroyed
pixmap with rootful Xwayland. It would result in a crash after resizing
the Xwayland window, or at the latest when shutting down.
Fixes: 6779ec5bf6
("xwayland: Use window pixmap as a window buffer")
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1621
This commit is contained in:
parent
2ef0f1116c
commit
3ddb81b15e
|
@ -281,6 +281,10 @@ xwl_window_set_pixmap(WindowPtr window, PixmapPtr pixmap)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TraverseTree(window, xwl_set_pixmap_visit_window, &visit);
|
TraverseTree(window, xwl_set_pixmap_visit_window, &visit);
|
||||||
|
|
||||||
|
if (window == screen->root &&
|
||||||
|
screen->GetScreenPixmap(screen) == visit.old)
|
||||||
|
screen->SetScreenPixmap(pixmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PixmapPtr
|
static PixmapPtr
|
||||||
|
|
Loading…
Reference in New Issue