Alexandros Frantzis (@afrantzis) commented about dlls/winewayland.drv/window.c:
struct wayland_client_surface *get_client_surface(HWND hwnd) { struct wayland_client_surface *client;
- struct wayland_surface *surface; struct wayland_win_data *data;
- HWND toplevel;
- if ((toplevel = NtUserGetAncestor(hwnd, GA_ROOT)) == hwnd) toplevel = 0;
This prevents attaching a (non-child) client surface to its window surface. The client surface may be eventually attached during `wayland_win_data_update_wayland_surface`, but depending on the application this may not happen at the right time (or ever unless there is some user interaction).