Alexandre Julliard (@julliard) commented about dlls/win32u/window.c:
* Some applications (e.g. Imperiums: Greek Wars) depend on this. */ -static void update_maximized_pos( WND *wnd, RECT *work_rect ) +static void update_maximized_pos( WND *wnd ) { + MONITORINFO mon_info; + RECT *work_rect; + if (wnd->parent && wnd->parent != get_desktop_window()) return;
if (wnd->dwStyle & WS_MAXIMIZE) { + mon_info = monitor_info_from_window( wnd->obj.handle, MONITOR_DEFAULTTOPRIMARY ); + work_rect = &mon_info.rcWork; + This is causing an infinite recursion here:
``` ... #1279 0x00007ffff75362cc in monitor_from_window (hwnd=hwnd(a)entry=0x10064, flags=flags(a)entry=1, dpi=96) at dlls/win32u/sysparams.c:4299 #1280 0x00007ffff75363d5 in monitor_info_from_window (hwnd=0x10064, flags=flags(a)entry=1) at dlls/win32u/sysparams.c:4314 #1281 0x00007ffff753d858 in update_maximized_pos (wnd=wnd(a)entry=0x555555807200) at dlls/win32u/window.c:2720 #1282 0x00007ffff7540bd9 in NtUserGetWindowPlacement (hwnd=hwnd(a)entry=0x10064, placement=placement(a)entry=0x7ffffe01eb30) at dlls/win32u/window.c:2799 #1283 0x00007ffff75362cc in monitor_from_window (hwnd=hwnd(a)entry=0x10064, flags=flags(a)entry=1, dpi=96) at dlls/win32u/sysparams.c:4299 #1284 0x00007ffff75363d5 in monitor_info_from_window (hwnd=0x10064, flags=flags(a)entry=1) at dlls/win32u/sysparams.c:4314 #1285 0x00007ffff753d858 in update_maximized_pos (wnd=wnd(a)entry=0x555555807200) at dlls/win32u/window.c:2720 #1286 0x00007ffff7540bd9 in NtUserGetWindowPlacement (hwnd=hwnd(a)entry=0x10064, placement=placement(a)entry=0x7ffffe01ecb0) at dlls/win32u/window.c:2799 ... ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7708#note_99922