Rémi Bernon (@rbernon) commented about dlls/win32u/window.c:
return; if (wnd->dwStyle & WS_MAXIMIZE)
- {
if (!(wnd->dwStyle & WS_MINIMIZE)) { mon_info = monitor_info_from_window( wnd->obj.handle, MONITOR_DEFAULTTOPRIMARY );
work_rect = &mon_info.rcWork;
work_rect = mon_info.rcWork;
}
if (wnd->rects.window.left <= work_rect->left && wnd->rects.window.top <= work_rect->top &&
wnd->rects.window.right >= work_rect->right && wnd->rects.window.bottom >= work_rect->bottom)
if (wnd->rects.window.left <= work_rect.left && wnd->rects.window.top <= work_rect.top &&
wnd->rects.window.right >= work_rect.right && wnd->rects.window.bottom >= work_rect.bottom) wnd->max_pos.x = wnd->max_pos.y = -1;
This changes the logic and when window is both maximized and minimized, we may now set `max_pos.x = max_pos.y = -1`? It might be better to fix `monitor_info_from_window` instead and avoid calling `NtUserGetWindowPlacement` just to get the normal rect, maybe with a dedicated helper.