Zhiyi Zhang (@zhiyi) commented about dlls/winewayland.drv/display.c:
-{ - struct gdi_adapter adapter; - adapter.id = output_id; - adapter.state_flags = DISPLAY_DEVICE_ATTACHED_TO_DESKTOP; - if (output_id == 0) - adapter.state_flags |= DISPLAY_DEVICE_PRIMARY_DEVICE; - - TRACE("id=0x%s state_flags=0x%x\n", - wine_dbgstr_longlong(adapter.id), (UINT)adapter.state_flags); - - device_manager->add_adapter(&adapter, param); -} - static void wayland_add_device_monitor(const struct gdi_device_manager *device_manager, - void *param, struct output_info *output_info) + void *param, DWORD state_flags, struct output_info *output_info) I don't like that you're passing state flags for GDI adapters to monitor devices. You're also adding a GDI adapter/source in wayland_add_device_monitor(). However, for example, there can be two monitors under the same GDI adapter when they're mirrored. I understand that maybe winewayland.drv doesn't handle that yet. Let's keep wayland_add_device_adapter and rename it to wayland_add_device_source().
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/5137#note_66216