diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index ffa3cdbb0f..a63f37e481 100644 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -1513,23 +1513,12 @@ LRESULT CALLBACK WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara SDL_SendWindowEvent(data->window, SDL_EVENT_WINDOW_MOVED, x, y); } - // GetClientRect() returns the old size for popup windows for some reason. - if (!SDL_WINDOW_IS_POPUP(data->window)) { - // Moving the window from one display to another can change the size of the window (in the handling of SDL_EVENT_WINDOW_MOVED), so we need to re-query the bounds - if (GetClientRect(hwnd, &rect) && !WIN_IsRectEmpty(&rect)) { - w = rect.right; - h = rect.bottom; + // Moving the window from one display to another can change the size of the window (in the handling of SDL_EVENT_WINDOW_MOVED), so we need to re-query the bounds + if (GetClientRect(hwnd, &rect) && !WIN_IsRectEmpty(&rect)) { + w = rect.right; + h = rect.bottom; - SDL_SendWindowEvent(data->window, SDL_EVENT_WINDOW_RESIZED, w, h); - } - } else { - // Cache the data, as a resize event will call GetWindowSizeInPixels(). - w = data->last_popup_width = windowpos->cx; - h = data->last_popup_height = windowpos->cy; - - data->use_last_popup_size = true; SDL_SendWindowEvent(data->window, SDL_EVENT_WINDOW_RESIZED, w, h); - data->use_last_popup_size = false; } WIN_UpdateClipCursor(data->window); diff --git a/src/video/windows/SDL_windowswindow.c b/src/video/windows/SDL_windowswindow.c index 2a315f7b36..a5d17c0f30 100644 --- a/src/video/windows/SDL_windowswindow.c +++ b/src/video/windows/SDL_windowswindow.c @@ -1053,11 +1053,7 @@ void WIN_GetWindowSizeInPixels(SDL_VideoDevice *_this, SDL_Window *window, int * HWND hwnd = data->hwnd; RECT rect; - // GetClientRect() returns the wrong size for popup windows if called while handling WM_WINDOWPOSCHANGED. - if (data->use_last_popup_size) { - *w = data->last_popup_width; - *h = data->last_popup_height; - } else if (GetClientRect(hwnd, &rect) && !WIN_IsRectEmpty(&rect)) { + if (GetClientRect(hwnd, &rect) && !WIN_IsRectEmpty(&rect)) { *w = rect.right; *h = rect.bottom; } else if (window->last_pixel_w && window->last_pixel_h) { diff --git a/src/video/windows/SDL_windowswindow.h b/src/video/windows/SDL_windowswindow.h index 07877fa554..3a21a1c258 100644 --- a/src/video/windows/SDL_windowswindow.h +++ b/src/video/windows/SDL_windowswindow.h @@ -82,8 +82,6 @@ struct SDL_WindowData bool windowed_mode_was_maximized; bool in_window_deactivation; bool force_resizable; - bool use_last_popup_size; - int last_popup_width, last_popup_height; RECT cursor_clipped_rect; // last successfully committed clipping rect for this window RECT cursor_ctrlock_rect; // this is Windows-specific, but probably does not need to be per-window UINT windowed_mode_corner_rounding;