[PATCH 0/1] MR6256: win32u: Don't request a host window surface for child windows.
Fixes: b9879d5adc1cd98a6ceb7d087c4533fdd487bedb Supersedes https://gitlab.winehq.org/wine/wine/-/merge_requests/6248 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6256
From: Rémi Bernon <rbernon(a)codeweavers.com> Fixes: b9879d5adc1cd98a6ceb7d087c4533fdd487bedb --- dlls/win32u/window.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 8e1ec0370ed..4bb7151660c 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -1844,6 +1844,7 @@ static struct window_surface *create_window_surface( HWND hwnd, UINT swp_flags, RECT *visible_rect, RECT *surface_rect ) { BOOL shaped, needs_surface, create_opaque, is_layered; + HWND parent = NtUserGetAncestor( hwnd, GA_PARENT ); struct window_surface *new_surface; RECT dummy; HRGN shape; @@ -1855,6 +1856,7 @@ static struct window_surface *create_window_surface( HWND hwnd, UINT swp_flags, if (!user_driver->pWindowPosChanging( hwnd, swp_flags, shaped, window_rect, client_rect, visible_rect )) needs_surface = FALSE; else if (swp_flags & SWP_HIDEWINDOW) needs_surface = FALSE; else if (swp_flags & SWP_SHOWWINDOW) needs_surface = TRUE; + else if (parent && parent != NtUserGetDesktopWindow()) needs_surface = FALSE; else needs_surface = !!(NtUserGetWindowLongW( hwnd, GWL_STYLE ) & WS_VISIBLE); if (!get_surface_rect( visible_rect, surface_rect )) needs_surface = FALSE; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6256
participants (1)
-
Rémi Bernon