Alexandros Frantzis (@afrantzis) commented about dlls/winewayland.drv/window.c:
+/***************************************************************** + * WAYLAND_SetWindowIcon + */ +void WAYLAND_SetWindowIcon(HWND hwnd, UINT type, HICON icon) +{ + struct wayland_win_data *data; + ICONINFO ii; + + TRACE("hwnd=%p text=%u icon=%p\n", hwnd, type, icon); + + if (process_wayland.xdg_toplevel_icon_manager_v1) + { + icon = get_window_icon(hwnd, type, icon, &ii); + if (icon && (data = wayland_win_data_get(hwnd))) + { + if (data->wayland_surface && data->wayland_surface->role == WAYLAND_SURFACE_ROLE_TOPLEVEL) We also need to check `data->wayland_surface->xdg_toplevel`
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/6938#note_99655