From 290c549eddc26ab53a96fb02e403624b5a7d79b1 Mon Sep 17 00:00:00 2001 From: Erhan Bilgili Date: Sun, 5 Jul 2026 20:03:38 +0200 Subject: [PATCH] winex11: Check layered client surfaces against the extended style. WS_EX_LAYERED is stored in GWL_EXSTYLE but needs_offscreen_rendering() was testing it against GWL_STYLE. This causes layered client surface windows to miss the offscreen compositing path. --- dlls/winex11.drv/init.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c index 479ff421a399..d18c0ea7ca31 100644 --- a/dlls/winex11.drv/init.c +++ b/dlls/winex11.drv/init.c @@ -245,6 +245,7 @@ static BOOL enable_fullscreen_hack( HWND hwnd ) BOOL needs_offscreen_rendering( HWND hwnd ) { UINT style = NtUserGetWindowLongW( hwnd, GWL_STYLE ); + UINT ex_style = NtUserGetWindowLongW( hwnd, GWL_EXSTYLE ); struct window_surface *surface; struct x11drv_win_data *data; BOOL needs_offscreen; @@ -257,8 +258,8 @@ BOOL needs_offscreen_rendering( HWND hwnd ) release_win_data( data ); } - if (!needs_offscreen && style & WS_EX_LAYERED && NtUserGetLayeredWindowAttributes( hwnd, NULL, NULL, &layered_flags ) - && layered_flags & LWA_COLORKEY) + if (!needs_offscreen && (ex_style & WS_EX_LAYERED) + && NtUserGetLayeredWindowAttributes( hwnd, NULL, NULL, &layered_flags )) needs_offscreen = TRUE; if (!needs_offscreen && (surface = window_surface_get( hwnd )))