mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-02-15 11:30:30 +01:00
xwayland: Stop on first unmapped child
If a child window of the same size is unmapped, we should stop walking the tree looking for the surface window to use. Whatever lies beneath is not visible anyway. This also fixes an issue with the Damage list becoming corrupted when destroying a window, because the first thing that DeleteWindow() does is to unmap the window and crush the window tree underneath it. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> Fixes:3a0fc268- xwayland: Add xwl_window::surface_window Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1680 Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1564> (cherry picked from commit32e16082c5)
This commit is contained in:
parent
9ca09af9e3
commit
fb5dd93e08
1 changed files with 3 additions and 0 deletions
|
|
@ -1351,6 +1351,9 @@ xwl_window_update_surface_window(struct xwl_window *xwl_window)
|
|||
if (!RegionEqual(&window->winSize, &surface_window->winSize))
|
||||
break;
|
||||
|
||||
if (!window->mapped)
|
||||
break;
|
||||
|
||||
/* The surface window must be top-level for its window pixmap */
|
||||
window_pixmap = screen->GetWindowPixmap(window);
|
||||
if (window_pixmap == surface_pixmap)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue