Gdk-Win32 uses GetClientRect() internally to query the surfaces coordinates,
but this API may fail in some transient contexts (observed when iconifying
a maximized window).
Check if the rect area is null, and don't update the surface position in
that case. This will keep the current surface size, until Win32 notifies
the new valid window state later.
This prevents using a nulled next_layout for toplevel size computation,
which would break widgets allocation once notified on gtk side.
Fixes #5724
Closes #5724
{
_gdk_win32_get_window_rect (surface, &rect);
+ /* Keep current position if rect is invalid (i.e. queried in bad context) */
+ if (rect.right == rect.left || rect.bottom == rect.top)
+ return;
+
impl->next_layout.configured_width = (rect.right - rect.left + scale - 1) / scale;
impl->next_layout.configured_height = (rect.bottom - rect.top + scale - 1) / scale;