If the client rect is empty, use the last known window size
This happens on Windows 11 with fullscreen desktop windows when the desktop is brought up with the Windows+D shortcut. Fixes https://github.com/libsdl-org/SDL/issues/7419
This commit is contained in:
parent
bb59f46cbe
commit
2ca727aec6
@ -1395,8 +1395,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
RECT rect;
|
||||
float x, y;
|
||||
|
||||
if (!GetClientRect(hwnd, &rect) ||
|
||||
(rect.right == rect.left && rect.bottom == rect.top)) {
|
||||
if (!GetClientRect(hwnd, &rect) || IsRectEmpty(&rect)) {
|
||||
if (inputs) {
|
||||
SDL_small_free(inputs, isstack);
|
||||
}
|
||||
|
@ -792,12 +792,12 @@ void WIN_GetWindowSizeInPixels(_THIS, SDL_Window *window, int *w, int *h)
|
||||
HWND hwnd = data->hwnd;
|
||||
RECT rect;
|
||||
|
||||
if (GetClientRect(hwnd, &rect)) {
|
||||
if (GetClientRect(hwnd, &rect) && !IsRectEmpty(&rect)) {
|
||||
*w = rect.right;
|
||||
*h = rect.bottom;
|
||||
} else {
|
||||
*w = 0;
|
||||
*h = 0;
|
||||
*w = window->last_pixel_w;
|
||||
*h = window->last_pixel_h;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user