Zhiyi Zhang (@zhiyi) commented about dlls/win32u/sysparams.c:
+ + /* enumerate primary monitors first */ LIST_FOR_EACH_ENTRY(monitor, &monitors, struct monitor, entry) { - RECT monrect; - - if (!is_monitor_active( monitor )) continue; - - monrect = map_dpi_rect( monitor->rc_monitor, get_monitor_dpi( monitor->handle ), - get_thread_dpi() ); - OffsetRect( &monrect, -origin.x, -origin.y ); - if (!intersect_rect( &monrect, &monrect, &limit )) continue; - if (monitor->is_clone) continue; + if (!is_monitor_primary( monitor )) continue; + if (should_enumerate_monitor( monitor, &origin, &limit, &enum_info[count].rect )) + enum_info[count++].handle = monitor->handle; You can break after you find the primary monitor as there is only one primary.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/5262#note_64570