[PATCH v7 0/7] MR9832: fix toplevel icon protocol for Wayland
Fixes https://bugs.winehq.org/show_bug.cgi?id=59149 -- v7: variable rename https://gitlab.winehq.org/wine/wine/-/merge_requests/9832
From: Alex Schwartz <alexschwartz01@gmail.com> --- dlls/win32u/defwnd.c | 4 +-- dlls/win32u/driver.c | 7 +++++ dlls/win32u/window.c | 2 +- dlls/winewayland.drv/waylanddrv.h | 1 + dlls/winewayland.drv/waylanddrv_main.c | 1 + dlls/winewayland.drv/window.c | 38 ++++++++++++++++++-------- dlls/winex11.drv/init.c | 1 + dlls/winex11.drv/window.c | 8 ++++++ dlls/winex11.drv/x11drv.h | 1 + include/wine/gdi_driver.h | 3 +- 10 files changed, 50 insertions(+), 16 deletions(-) diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c index 885af182657..2c76f41f9b8 100644 --- a/dlls/win32u/defwnd.c +++ b/dlls/win32u/defwnd.c @@ -420,10 +420,10 @@ static HICON set_window_icon( HWND hwnd, WPARAM type, HICON icon ) icon = win->hIcon; icon_small = win->hIconSmall2 ? win->hIconSmall2 : win->hIconSmall; - win->has_icons = !is_child; + BOOL hasIcons = win->has_icons = !is_child && user_driver->pNeedsToplevelIcon(hwnd); release_win_ptr( win ); - if (!is_child && (icon = get_window_icon_info( hwnd, ICON_BIG, icon, &ii ))) + if (hasIcons && (icon = get_window_icon_info( hwnd, ICON_BIG, icon, &ii ))) { icon_small = get_window_icon_info( hwnd, ICON_SMALL, icon_small, &ii_small ); user_driver->pSetWindowIcons( hwnd, icon, &ii, icon_small, &ii_small ); diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c index 60aba702d1a..9c942592f13 100644 --- a/dlls/win32u/driver.c +++ b/dlls/win32u/driver.c @@ -834,6 +834,11 @@ static void nulldrv_SetWindowRgn( HWND hwnd, HRGN hrgn, BOOL redraw ) { } +static BOOL nulldrv_NeedsToplevelIcon( HWND hwnd ) +{ + return FALSE; +} + static void nulldrv_SetWindowIcons( HWND hwnd, HICON icon, const ICONINFO *ii, HICON icon_small, const ICONINFO *ii_small ) { } @@ -1293,6 +1298,7 @@ static const struct user_driver_funcs lazy_load_driver = loaderdrv_SetLayeredWindowAttributes, nulldrv_SetParent, loaderdrv_SetWindowRgn, + nulldrv_NeedsToplevelIcon, nulldrv_SetWindowIcons, nulldrv_SetWindowStyle, nulldrv_SetWindowText, @@ -1392,6 +1398,7 @@ void __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version SET_USER_FUNC(SetLayeredWindowAttributes); SET_USER_FUNC(SetParent); SET_USER_FUNC(SetWindowRgn); + SET_USER_FUNC(NeedsToplevelIcon); SET_USER_FUNC(SetWindowIcons); SET_USER_FUNC(SetWindowStyle); SET_USER_FUNC(SetWindowText); diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 1464d45697e..943dee68c43 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -2252,7 +2252,7 @@ static BOOL apply_window_pos( HWND hwnd, HWND insert_after, UINT swp_flags, stru (swp_flags & (SWP_HIDEWINDOW | SWP_SHOWWINDOW | SWP_STATECHANGED | SWP_FRAMECHANGED))) invalidate_dce( win, &old_rects.window ); - if (win->dwStyle & WS_VISIBLE && !is_child && !win->has_icons) + if (win->dwStyle & WS_VISIBLE && !is_child && !win->has_icons && user_driver->pNeedsToplevelIcon(hwnd)) { icon = win->hIcon; icon_small = win->hIconSmall2 ? win->hIconSmall2 : win->hIconSmall; diff --git a/dlls/winewayland.drv/waylanddrv.h b/dlls/winewayland.drv/waylanddrv.h index 7ab1f58ba64..97f046a6d31 100644 --- a/dlls/winewayland.drv/waylanddrv.h +++ b/dlls/winewayland.drv/waylanddrv.h @@ -445,6 +445,7 @@ BOOL WAYLAND_SetIMECompositionRect(HWND hwnd, RECT rect); void WAYLAND_SetCursor(HWND hwnd, HCURSOR hcursor); BOOL WAYLAND_SetCursorPos(INT x, INT y); void WAYLAND_SetLayeredWindowAttributes(HWND hwnd, COLORREF key, BYTE alpha, DWORD flags); +BOOL WAYLAND_NeedsToplevelIcon(HWND hwnd); void WAYLAND_SetWindowIcons(HWND hwnd, HICON icon, const ICONINFO *ii, HICON icon_small, const ICONINFO *ii_small); void WAYLAND_SetWindowStyle(HWND hwnd, INT offset, STYLESTRUCT *style); void WAYLAND_SetWindowText(HWND hwnd, LPCWSTR text); diff --git a/dlls/winewayland.drv/waylanddrv_main.c b/dlls/winewayland.drv/waylanddrv_main.c index cdb5dd8a956..69d81560f98 100644 --- a/dlls/winewayland.drv/waylanddrv_main.c +++ b/dlls/winewayland.drv/waylanddrv_main.c @@ -45,6 +45,7 @@ static const struct user_driver_funcs waylanddrv_funcs = .pSetCursor = WAYLAND_SetCursor, .pSetCursorPos = WAYLAND_SetCursorPos, .pSetLayeredWindowAttributes = WAYLAND_SetLayeredWindowAttributes, + .pNeedsToplevelIcon = WAYLAND_NeedsToplevelIcon, .pSetWindowIcons = WAYLAND_SetWindowIcons, .pSetWindowStyle = WAYLAND_SetWindowStyle, .pSetWindowText = WAYLAND_SetWindowText, diff --git a/dlls/winewayland.drv/window.c b/dlls/winewayland.drv/window.c index b838fd84191..79f4a32bfe3 100644 --- a/dlls/winewayland.drv/window.c +++ b/dlls/winewayland.drv/window.c @@ -664,6 +664,26 @@ static enum xdg_toplevel_resize_edge hittest_to_resize_edge(WPARAM hittest) } } +/***************************************************************** + * WAYLAND_IsTopLevel + */ +BOOL WAYLAND_NeedsToplevelIcon(HWND hwnd) +{ + BOOL needs_icon; + + struct wayland_win_data *data; + + if (!(data = wayland_win_data_get(hwnd))) return FALSE; + + needs_icon = data->wayland_surface && + wayland_surface_is_toplevel(data->wayland_surface) && + process_wayland.xdg_toplevel_icon_manager_v1; + + wayland_win_data_release(data); + + return needs_icon; +} + /***************************************************************** * WAYLAND_SetWindowIcons */ @@ -673,18 +693,12 @@ void WAYLAND_SetWindowIcons(HWND hwnd, HICON icon, const ICONINFO *ii, HICON ico TRACE("hwnd=%p icon=%p ii=%p icon_small=%p ii_small=%p\n", hwnd, icon, ii, icon_small, ii_small); - if (process_wayland.xdg_toplevel_icon_manager_v1) - { - if ((data = wayland_win_data_get(hwnd))) - { - if (data->wayland_surface && wayland_surface_is_toplevel(data->wayland_surface)) - { - wayland_surface_set_icon(data->wayland_surface, ICON_BIG, ii); - wayland_surface_set_icon(data->wayland_surface, ICON_SMALL, ii_small); - } - wayland_win_data_release(data); - } - } + if (!(data = wayland_win_data_get(hwnd))) return; + + if (icon) wayland_surface_set_icon(data->wayland_surface, ICON_BIG, ii); + if (icon_small) wayland_surface_set_icon(data->wayland_surface, ICON_SMALL, ii_small); + + wayland_win_data_release(data); } /*********************************************************************** diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c index 09ef2bf8664..5f65b0a3389 100644 --- a/dlls/winex11.drv/init.c +++ b/dlls/winex11.drv/init.c @@ -698,6 +698,7 @@ static const struct user_driver_funcs x11drv_funcs = .pActivateWindow = X11DRV_ActivateWindow, .pSetLayeredWindowAttributes = X11DRV_SetLayeredWindowAttributes, .pSetParent = X11DRV_SetParent, + .pNeedsToplevelIcon = X11DRV_NeedsToplevelIcon, .pSetWindowIcons = X11DRV_SetWindowIcons, .pSetWindowRgn = X11DRV_SetWindowRgn, .pSetWindowStyle = X11DRV_SetWindowStyle, diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index d256674c9c1..0c6fc22f416 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -3393,6 +3393,14 @@ done: } +/********************************************************************** + * NeedsToplevelIcon (X11DRV.@) + */ +BOOL X11DRV_NeedsToplevelIcon(HWND hwnd) +{ + return TRUE; +} + /********************************************************************** * SetWindowIcons (X11DRV.@) */ diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index 9232988c9c7..221e04d744e 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -238,6 +238,7 @@ extern void X11DRV_SetDesktopWindow( HWND hwnd ); extern void X11DRV_SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha, DWORD flags ); extern void X11DRV_SetParent( HWND hwnd, HWND parent, HWND old_parent ); +extern BOOL X11DRV_NeedsToplevelIcon( HWND hwnd ); extern void X11DRV_SetWindowIcons( HWND hwnd, HICON icon, const ICONINFO *ii, HICON icon_small, const ICONINFO *ii_small ); extern void X11DRV_SetWindowRgn( HWND hwnd, HRGN hrgn, BOOL redraw ); extern void X11DRV_SetWindowStyle( HWND hwnd, INT offset, STYLESTRUCT *style ); diff --git a/include/wine/gdi_driver.h b/include/wine/gdi_driver.h index 81932436963..03c23cab15e 100644 --- a/include/wine/gdi_driver.h +++ b/include/wine/gdi_driver.h @@ -218,7 +218,7 @@ struct gdi_dc_funcs }; /* increment this when you change the DC function table */ -#define WINE_GDI_DRIVER_VERSION 108 +#define WINE_GDI_DRIVER_VERSION 109 #define GDI_PRIORITY_NULL_DRV 0 /* null driver */ #define GDI_PRIORITY_FONT_DRV 100 /* any font driver */ @@ -415,6 +415,7 @@ struct user_driver_funcs void (*pSetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD); void (*pSetParent)(HWND,HWND,HWND); void (*pSetWindowRgn)(HWND,HRGN,BOOL); + BOOL (*pNeedsToplevelIcon)(HWND); void (*pSetWindowIcons)(HWND,HICON,const ICONINFO*,HICON,const ICONINFO*); void (*pSetWindowStyle)(HWND,INT,STYLESTRUCT*); void (*pSetWindowText)(HWND,LPCWSTR); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9832
From: Alex Schwartz <alexschwartz01@gmail.com> --- dlls/winewayland.drv/window.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/winewayland.drv/window.c b/dlls/winewayland.drv/window.c index 79f4a32bfe3..a266e362aaa 100644 --- a/dlls/winewayland.drv/window.c +++ b/dlls/winewayland.drv/window.c @@ -665,7 +665,7 @@ static enum xdg_toplevel_resize_edge hittest_to_resize_edge(WPARAM hittest) } /***************************************************************** - * WAYLAND_IsTopLevel + * WAYLAND_NeedsToplevelIcon */ BOOL WAYLAND_NeedsToplevelIcon(HWND hwnd) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9832
From: Alex Schwartz <alexschwartz01@gmail.com> --- dlls/winex11.drv/window.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 0c6fc22f416..2e0f11a4f4d 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -3401,6 +3401,7 @@ BOOL X11DRV_NeedsToplevelIcon(HWND hwnd) return TRUE; } + /********************************************************************** * SetWindowIcons (X11DRV.@) */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9832
From: Alex Schwartz <alexschwartz01@gmail.com> --- dlls/winewayland.drv/window.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/dlls/winewayland.drv/window.c b/dlls/winewayland.drv/window.c index a266e362aaa..dad5c4db63f 100644 --- a/dlls/winewayland.drv/window.c +++ b/dlls/winewayland.drv/window.c @@ -669,13 +669,11 @@ static enum xdg_toplevel_resize_edge hittest_to_resize_edge(WPARAM hittest) */ BOOL WAYLAND_NeedsToplevelIcon(HWND hwnd) { - BOOL needs_icon; - struct wayland_win_data *data; if (!(data = wayland_win_data_get(hwnd))) return FALSE; - needs_icon = data->wayland_surface && + BOOL needs_icon = data->wayland_surface && wayland_surface_is_toplevel(data->wayland_surface) && process_wayland.xdg_toplevel_icon_manager_v1; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9832
From: Alex Schwartz <alexschwartz01@gmail.com> --- dlls/win32u/defwnd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c index 2c76f41f9b8..a09784e06a3 100644 --- a/dlls/win32u/defwnd.c +++ b/dlls/win32u/defwnd.c @@ -420,10 +420,10 @@ static HICON set_window_icon( HWND hwnd, WPARAM type, HICON icon ) icon = win->hIcon; icon_small = win->hIconSmall2 ? win->hIconSmall2 : win->hIconSmall; - BOOL hasIcons = win->has_icons = !is_child && user_driver->pNeedsToplevelIcon(hwnd); + BOOL need_icons = win->has_icons = !is_child && user_driver->pNeedsToplevelIcon(hwnd); release_win_ptr( win ); - if (hasIcons && (icon = get_window_icon_info( hwnd, ICON_BIG, icon, &ii ))) + if (need_icons && (icon = get_window_icon_info( hwnd, ICON_BIG, icon, &ii ))) { icon_small = get_window_icon_info( hwnd, ICON_SMALL, icon_small, &ii_small ); user_driver->pSetWindowIcons( hwnd, icon, &ii, icon_small, &ii_small ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9832
From: Alex Schwartz <alexschwartz01@gmail.com> --- dlls/win32u/defwnd.c | 2 +- dlls/win32u/driver.c | 6 +++--- dlls/win32u/window.c | 2 +- dlls/winewayland.drv/waylanddrv.h | 2 +- dlls/winewayland.drv/waylanddrv_main.c | 2 +- dlls/winewayland.drv/window.c | 4 ++-- dlls/winex11.drv/init.c | 2 +- dlls/winex11.drv/window.c | 4 ++-- dlls/winex11.drv/x11drv.h | 2 +- include/wine/gdi_driver.h | 2 +- 10 files changed, 14 insertions(+), 14 deletions(-) diff --git a/dlls/win32u/defwnd.c b/dlls/win32u/defwnd.c index a09784e06a3..c24ab182263 100644 --- a/dlls/win32u/defwnd.c +++ b/dlls/win32u/defwnd.c @@ -420,7 +420,7 @@ static HICON set_window_icon( HWND hwnd, WPARAM type, HICON icon ) icon = win->hIcon; icon_small = win->hIconSmall2 ? win->hIconSmall2 : win->hIconSmall; - BOOL need_icons = win->has_icons = !is_child && user_driver->pNeedsToplevelIcon(hwnd); + BOOL need_icons = win->has_icons = !is_child && user_driver->pAllowsToplevelIcon(hwnd); release_win_ptr( win ); if (need_icons && (icon = get_window_icon_info( hwnd, ICON_BIG, icon, &ii ))) diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c index 9c942592f13..5a0e2a64d92 100644 --- a/dlls/win32u/driver.c +++ b/dlls/win32u/driver.c @@ -834,7 +834,7 @@ static void nulldrv_SetWindowRgn( HWND hwnd, HRGN hrgn, BOOL redraw ) { } -static BOOL nulldrv_NeedsToplevelIcon( HWND hwnd ) +static BOOL nulldrv_AllowsToplevelIcon( HWND hwnd ) { return FALSE; } @@ -1298,7 +1298,7 @@ static const struct user_driver_funcs lazy_load_driver = loaderdrv_SetLayeredWindowAttributes, nulldrv_SetParent, loaderdrv_SetWindowRgn, - nulldrv_NeedsToplevelIcon, + nulldrv_AllowsToplevelIcon, nulldrv_SetWindowIcons, nulldrv_SetWindowStyle, nulldrv_SetWindowText, @@ -1398,7 +1398,7 @@ void __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version SET_USER_FUNC(SetLayeredWindowAttributes); SET_USER_FUNC(SetParent); SET_USER_FUNC(SetWindowRgn); - SET_USER_FUNC(NeedsToplevelIcon); + SET_USER_FUNC(AllowsToplevelIcon); SET_USER_FUNC(SetWindowIcons); SET_USER_FUNC(SetWindowStyle); SET_USER_FUNC(SetWindowText); diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 943dee68c43..5429054cadd 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -2252,7 +2252,7 @@ static BOOL apply_window_pos( HWND hwnd, HWND insert_after, UINT swp_flags, stru (swp_flags & (SWP_HIDEWINDOW | SWP_SHOWWINDOW | SWP_STATECHANGED | SWP_FRAMECHANGED))) invalidate_dce( win, &old_rects.window ); - if (win->dwStyle & WS_VISIBLE && !is_child && !win->has_icons && user_driver->pNeedsToplevelIcon(hwnd)) + if (win->dwStyle & WS_VISIBLE && !is_child && !win->has_icons && user_driver->pAllowsToplevelIcon(hwnd)) { icon = win->hIcon; icon_small = win->hIconSmall2 ? win->hIconSmall2 : win->hIconSmall; diff --git a/dlls/winewayland.drv/waylanddrv.h b/dlls/winewayland.drv/waylanddrv.h index 97f046a6d31..a0e99b13011 100644 --- a/dlls/winewayland.drv/waylanddrv.h +++ b/dlls/winewayland.drv/waylanddrv.h @@ -445,7 +445,7 @@ BOOL WAYLAND_SetIMECompositionRect(HWND hwnd, RECT rect); void WAYLAND_SetCursor(HWND hwnd, HCURSOR hcursor); BOOL WAYLAND_SetCursorPos(INT x, INT y); void WAYLAND_SetLayeredWindowAttributes(HWND hwnd, COLORREF key, BYTE alpha, DWORD flags); -BOOL WAYLAND_NeedsToplevelIcon(HWND hwnd); +BOOL WAYLAND_AllowsToplevelIcon(HWND hwnd); void WAYLAND_SetWindowIcons(HWND hwnd, HICON icon, const ICONINFO *ii, HICON icon_small, const ICONINFO *ii_small); void WAYLAND_SetWindowStyle(HWND hwnd, INT offset, STYLESTRUCT *style); void WAYLAND_SetWindowText(HWND hwnd, LPCWSTR text); diff --git a/dlls/winewayland.drv/waylanddrv_main.c b/dlls/winewayland.drv/waylanddrv_main.c index 69d81560f98..90826f46f7a 100644 --- a/dlls/winewayland.drv/waylanddrv_main.c +++ b/dlls/winewayland.drv/waylanddrv_main.c @@ -45,7 +45,7 @@ static const struct user_driver_funcs waylanddrv_funcs = .pSetCursor = WAYLAND_SetCursor, .pSetCursorPos = WAYLAND_SetCursorPos, .pSetLayeredWindowAttributes = WAYLAND_SetLayeredWindowAttributes, - .pNeedsToplevelIcon = WAYLAND_NeedsToplevelIcon, + .pAllowsToplevelIcon = WAYLAND_AllowsToplevelIcon, .pSetWindowIcons = WAYLAND_SetWindowIcons, .pSetWindowStyle = WAYLAND_SetWindowStyle, .pSetWindowText = WAYLAND_SetWindowText, diff --git a/dlls/winewayland.drv/window.c b/dlls/winewayland.drv/window.c index dad5c4db63f..1c38ebc52f9 100644 --- a/dlls/winewayland.drv/window.c +++ b/dlls/winewayland.drv/window.c @@ -665,9 +665,9 @@ static enum xdg_toplevel_resize_edge hittest_to_resize_edge(WPARAM hittest) } /***************************************************************** - * WAYLAND_NeedsToplevelIcon + * WAYLAND_AllowsToplevelIcon */ -BOOL WAYLAND_NeedsToplevelIcon(HWND hwnd) +BOOL WAYLAND_AllowsToplevelIcon(HWND hwnd) { struct wayland_win_data *data; diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c index 5f65b0a3389..23343642006 100644 --- a/dlls/winex11.drv/init.c +++ b/dlls/winex11.drv/init.c @@ -698,7 +698,7 @@ static const struct user_driver_funcs x11drv_funcs = .pActivateWindow = X11DRV_ActivateWindow, .pSetLayeredWindowAttributes = X11DRV_SetLayeredWindowAttributes, .pSetParent = X11DRV_SetParent, - .pNeedsToplevelIcon = X11DRV_NeedsToplevelIcon, + .pAllowsToplevelIcon = X11DRV_AllowsToplevelIcon, .pSetWindowIcons = X11DRV_SetWindowIcons, .pSetWindowRgn = X11DRV_SetWindowRgn, .pSetWindowStyle = X11DRV_SetWindowStyle, diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 2e0f11a4f4d..c9d6c8e662a 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -3394,9 +3394,9 @@ done: /********************************************************************** - * NeedsToplevelIcon (X11DRV.@) + * AllowsToplevelIcon (X11DRV.@) */ -BOOL X11DRV_NeedsToplevelIcon(HWND hwnd) +BOOL X11DRV_AllowsToplevelIcon(HWND hwnd) { return TRUE; } diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index 221e04d744e..81e786b85e2 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -238,7 +238,7 @@ extern void X11DRV_SetDesktopWindow( HWND hwnd ); extern void X11DRV_SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha, DWORD flags ); extern void X11DRV_SetParent( HWND hwnd, HWND parent, HWND old_parent ); -extern BOOL X11DRV_NeedsToplevelIcon( HWND hwnd ); +extern BOOL X11DRV_AllowsToplevelIcon( HWND hwnd ); extern void X11DRV_SetWindowIcons( HWND hwnd, HICON icon, const ICONINFO *ii, HICON icon_small, const ICONINFO *ii_small ); extern void X11DRV_SetWindowRgn( HWND hwnd, HRGN hrgn, BOOL redraw ); extern void X11DRV_SetWindowStyle( HWND hwnd, INT offset, STYLESTRUCT *style ); diff --git a/include/wine/gdi_driver.h b/include/wine/gdi_driver.h index 03c23cab15e..067fc0d63cf 100644 --- a/include/wine/gdi_driver.h +++ b/include/wine/gdi_driver.h @@ -415,7 +415,7 @@ struct user_driver_funcs void (*pSetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD); void (*pSetParent)(HWND,HWND,HWND); void (*pSetWindowRgn)(HWND,HRGN,BOOL); - BOOL (*pNeedsToplevelIcon)(HWND); + BOOL (*pAllowsToplevelIcon)(HWND); void (*pSetWindowIcons)(HWND,HICON,const ICONINFO*,HICON,const ICONINFO*); void (*pSetWindowStyle)(HWND,INT,STYLESTRUCT*); void (*pSetWindowText)(HWND,LPCWSTR); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9832
From: Alex Schwartz <alexschwartz01@gmail.com> --- dlls/winewayland.drv/window.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/winewayland.drv/window.c b/dlls/winewayland.drv/window.c index 1c38ebc52f9..abb646188e4 100644 --- a/dlls/winewayland.drv/window.c +++ b/dlls/winewayland.drv/window.c @@ -673,13 +673,13 @@ BOOL WAYLAND_AllowsToplevelIcon(HWND hwnd) if (!(data = wayland_win_data_get(hwnd))) return FALSE; - BOOL needs_icon = data->wayland_surface && + BOOL allows_toplevel_icon = data->wayland_surface && wayland_surface_is_toplevel(data->wayland_surface) && process_wayland.xdg_toplevel_icon_manager_v1; wayland_win_data_release(data); - return needs_icon; + return allows_toplevel_icon; } /***************************************************************** -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9832
Hello Alex, thanks for the patch. Commits submitted should be in their final form, as concise, logical, independent changes. Fixup commits should be squashed with their parents, and commits should be given descriptive names. Please avoid unnecessary formatting changes in lines you aren't otherwise touching. Your commits should also build without warnings. You should be seeing a warning for declaration after statement, which style we don't use in Wine. Please also avoid pushing until you are sure, to the best of your ability, that your patches are ready to be reviewed and in their final form. Each push wastes CI resources and reviewer attention. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9832#note_126186
participants (3)
-
Alex Schwartz -
Alex Schwartz (@alexschwartz01) -
Elizabeth Figura (@zfigura)