From 9914e87faaa01a0a63f46ba97837b13d66355128 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Mon, 20 Jun 2022 12:53:10 +0200 Subject: [PATCH] Also send DPI change when expected resize. --- src/video/windows/SDL_windowsevents.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index f3ed588d8..6273a5a98 100644 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -1538,6 +1538,16 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) /* This DPI change is coming from an explicit SetWindowPos call within SDL. Assume all call sites are calculating the DPI-aware frame correctly, so we don't need to do any further adjustment. */ + + if (data->videodata->dpi_scaling_enabled) { + /* Update the cached DPI value for this window */ + data->scaling_dpi = newDPI; + + /* Send a SDL_WINDOWEVENT_SIZE_CHANGED saying that the client size (in dpi-scaled points) is unchanged. + Renderers need to get this to know that the framebuffer size changed. */ + SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_SIZE_CHANGED, data->window->w, data->window->h); + } + #ifdef HIGHDPI_DEBUG SDL_Log("WM_DPICHANGED: Doing nothing, assuming window is already sized correctly"); #endif