x11: Use the pending size for the min/max limits if a resize is in flight

Otherwise, an outdated size may be used, reverting the requested resize operation.

(cherry picked from commit 45480f5fe5)
This commit is contained in:
Frank Praznik
2025-09-23 11:30:21 -04:00
parent 18c2e179ee
commit 00718d60d2

View File

@@ -1226,8 +1226,13 @@ void X11_SetWindowMinMax(SDL_Window *window, bool use_current)
} else {
// Set the min/max to the same values to make the window non-resizable
sizehints->flags |= PMinSize | PMaxSize;
sizehints->min_width = sizehints->max_width = use_current ? data->window->floating.w : window->windowed.w;
sizehints->min_height = sizehints->max_height = use_current ? data->window->floating.h : window->windowed.h;
if (use_current) {
sizehints->min_width = sizehints->max_width = window->last_size_pending ? window->pending.w : data->window->floating.w;
sizehints->min_height = sizehints->max_height = window->last_size_pending ? window->pending.h : data->window->floating.h;
} else {
sizehints->min_width = sizehints->max_width = window->last_size_pending ? window->pending.w : data->window->windowed.w;
sizehints->min_height = sizehints->max_height = window->last_size_pending ? window->pending.h : data->window->windowed.h;
}
}
X11_XSetWMNormalHints(display, data->xwindow, sizehints);