Etaash Mathamsetty (@etaash.mathamsetty) commented about dlls/winewayland.drv/window.c:
(!(exstyle & WS_EX_LAYERED) || data->layered_attribs_set);
if (!visible) role = WAYLAND_SURFACE_ROLE_NONE; - else if (owner_surface) role = WAYLAND_SURFACE_ROLE_SUBSURFACE; + else if (owner_surface) role = WAYLAND_SURFACE_ROLE_POPUP;
Do we need to create popup role for child windows? From my testing it works to just leave them roleless and avoid any configure events that for surfaces that will never be mapped since they dont have a window_surface. (Are there any situations where they could have a window surface?) Client surfaces are attached to their topmost window so we dont need it for client surfaces either. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/11248#note_144157