windows: Don't allow non-resizable windows to be maximized.

Fixes #6346.

(cherry picked from commit d275851dfbd586910ddf1fbed8ef54714afbe6c4)
main
Ryan C. Gordon 2023-05-29 14:46:58 -04:00
parent 52b73d4115
commit ecccf6f9ca
No known key found for this signature in database
GPG Key ID: 3C62BA43B5CCC412
1 changed files with 10 additions and 5 deletions

View File

@ -928,11 +928,16 @@ void WIN_RaiseWindow(SDL_VideoDevice *_this, SDL_Window *window)
void WIN_MaximizeWindow(SDL_VideoDevice *_this, SDL_Window *window)
{
SDL_WindowData *data = window->driverdata;
HWND hwnd = data->hwnd;
data->expected_resize = SDL_TRUE;
ShowWindow(hwnd, SW_MAXIMIZE);
data->expected_resize = SDL_FALSE;
/* Other platforms refuse to maximize a non-resizable window, and with win32,
the OS resizes the window weirdly (covering the taskbar) if you don't have
the STYLE_RESIZABLE flag set. So just forbid it for now. */
if (window->flags & SDL_WINDOW_RESIZABLE) {
SDL_WindowData *data = window->driverdata;
HWND hwnd = data->hwnd;
data->expected_resize = SDL_TRUE;
ShowWindow(hwnd, SW_MAXIMIZE);
data->expected_resize = SDL_FALSE;
}
}
void WIN_MinimizeWindow(SDL_VideoDevice *_this, SDL_Window *window)