Zhiyi Zhang (@zhiyi) commented about dlls/winex11.drv/window.c:
{ XEvent xev;
+ if (is_fullscreen && (data->configure_serial || window_needs_config_change_delay( data ))) + { + TRACE( "window %p/%lx is updating or delaying config requests, delaying monitors update\n", data->hwnd, data->whole_window ); + return; /* another window config change is pending or delayed, wait for it to complete */ + }
I think there is a slight chance that we can get here with the same monitor indices. A ConfigureNotify might not be sent in that case. For example, xrandr14_device_change_handler() changes the monitor generation without changing the monitor count. Then we might be waiting for a ConfigureNotify that never comes. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10620#note_135898