winex11: Move layered window mapping to X11DRV_UpdateLayeredWindow.

This commit is contained in:
Rémi Bernon 2024-06-11 11:42:18 +02:00 committed by Alexandre Julliard
parent 71ff81bc2b
commit eca7068ab3
3 changed files with 20 additions and 3 deletions

View file

@ -421,6 +421,7 @@ static const struct user_driver_funcs x11drv_funcs =
.pClipboardWindowProc = X11DRV_ClipboardWindowProc,
.pUpdateClipboard = X11DRV_UpdateClipboard,
.pCreateLayeredWindow = X11DRV_CreateLayeredWindow,
.pUpdateLayeredWindow = X11DRV_UpdateLayeredWindow,
.pWindowMessage = X11DRV_WindowMessage,
.pWindowPosChanging = X11DRV_WindowPosChanging,
.pCreateWindowSurface = X11DRV_CreateWindowSurface,

View file

@ -2991,7 +2991,6 @@ BOOL X11DRV_CreateLayeredWindow( HWND hwnd, const RECT *window_rect, COLORREF co
{
struct window_surface *surface;
struct x11drv_win_data *data;
BOOL mapped;
RECT rect;
if (!(data = get_win_data( hwnd ))) return FALSE;
@ -3013,6 +3012,22 @@ BOOL X11DRV_CreateLayeredWindow( HWND hwnd, const RECT *window_rect, COLORREF co
else set_surface_color_key( surface, color_key );
if ((*window_surface = surface)) window_surface_add_ref( surface );
release_win_data( data );
return TRUE;
}
/***********************************************************************
* UpdateLayeredWindow (X11DRV.@)
*/
void X11DRV_UpdateLayeredWindow( HWND hwnd, const RECT *window_rect, COLORREF color_key,
BYTE alpha, UINT flags )
{
struct x11drv_win_data *data;
BOOL mapped;
if (!(data = get_win_data( hwnd ))) return;
mapped = data->mapped;
release_win_data( data );
@ -3024,10 +3039,9 @@ BOOL X11DRV_CreateLayeredWindow( HWND hwnd, const RECT *window_rect, COLORREF co
if ((style & WS_VISIBLE) && ((style & WS_MINIMIZE) || is_window_rect_mapped( window_rect )))
map_window( hwnd, style );
}
return TRUE;
}
/* Add a window to taskbar */
static void taskbar_add_tab( HWND hwnd )
{

View file

@ -242,6 +242,8 @@ extern LRESULT X11DRV_ClipboardWindowProc( HWND hwnd, UINT msg, WPARAM wp, LPARA
extern void X11DRV_UpdateClipboard(void);
extern BOOL X11DRV_CreateLayeredWindow( HWND hwnd, const RECT *window_rect, COLORREF color_key,
struct window_surface **surface );
extern void X11DRV_UpdateLayeredWindow( HWND hwnd, const RECT *window_rect, COLORREF color_key,
BYTE alpha, UINT flags );
extern LRESULT X11DRV_WindowMessage( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp );
extern BOOL X11DRV_WindowPosChanging( HWND hwnd, UINT swp_flags, const RECT *window_rect, const RECT *client_rect, RECT *visible_rect );
extern BOOL X11DRV_CreateWindowSurface( HWND hwnd, UINT swp_flags, const RECT *visible_rect, struct window_surface **surface );