diff --git a/video/out/w32_common.c b/video/out/w32_common.c
index 7308371125..8c06d5b325 100644
--- a/video/out/w32_common.c
+++ b/video/out/w32_common.c
@@ -1422,10 +1422,13 @@ static void gui_thread_reconfig(void *ptr)
     struct mp_rect screen = { r.left, r.top, r.right, r.bottom };
     struct vo_win_geometry geo;
 
+    RECT monrc = get_monitor_info(w32).rcMonitor;
+    struct mp_rect mon = { monrc.left, monrc.top, monrc.right, monrc.bottom };
+
     if (w32->dpi_scale == 0)
         force_update_display_info(w32);
 
-    vo_calc_window_geometry2(vo, &screen, w32->dpi_scale, &geo);
+    vo_calc_window_geometry3(vo, &screen, &mon, w32->dpi_scale, &geo);
     vo_apply_window_geometry(vo, &geo);
 
     bool reset_size = w32->o_dwidth != vo->dwidth ||