From: Alexandros Frantzis alexandros.frantzis@collabora.com
Assume that the window rect passed NtUserIsWindowRectFullScreen is expressed in terms of thread dpi and convert monitor rects accordingly for proper matching. --- dlls/win32u/sysparams.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index 4f2a299dd16..b134c5af680 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -2327,11 +2327,16 @@ static BOOL is_window_rect_full_screen( const RECT *rect )
LIST_FOR_EACH_ENTRY( monitor, &monitors, struct monitor, entry ) { + RECT monrect; + if (!(monitor->dev.state_flags & DISPLAY_DEVICE_ACTIVE)) continue;
- if (rect->left <= monitor->rc_monitor.left && rect->right >= monitor->rc_monitor.right && - rect->top <= monitor->rc_monitor.top && rect->bottom >= monitor->rc_monitor.bottom) + monrect = map_dpi_rect( monitor->rc_monitor, get_monitor_dpi( monitor->handle ), + get_thread_dpi() ); + + if (rect->left <= monrect.left && rect->right >= monrect.right && + rect->top <= monrect.top && rect->bottom >= monrect.bottom) { ret = TRUE; break;