Rémi Bernon (@rbernon) commented about dlls/winewayland.drv/window.c:
TRACE("hwnd=%p\n", data->hwnd);
- /* We don't want wayland surfaces for child windows. */
- if (parent != NtUserGetDesktopWindow() && parent != 0)
- if (NtUserGetWindowLongW(data->hwnd, GWL_STYLE) & WS_VISIBLE) {
if (data->window_surface)
wayland_window_surface_update_wayland_surface(data->window_surface, NULL, NULL);
if (surface) wayland_surface_destroy(surface);
surface = NULL;
goto out;
parent_data = wayland_win_data_get_nolock(NtUserGetAncestor(data->hwnd, GA_PARENT));
if (parent_data && parent_data->wayland_surface)
role = WAYLAND_SURFACE_ROLE_SUBSURFACE;
else
role = WAYLAND_SURFACE_ROLE_TOPLEVEL;
Is the check for `wayland_surface` necessary? How can a window with a parent be a top-level window?