Fix DPI-raised SDL_WINDOWEVENT_SIZE_CHANGED with event callback.
Move the sending of this event down so stuff like calling SDL_GL_GetDrawableSize() from a callback reports the new size instead of the old one.main
parent
2316e5682e
commit
af733c7a32
|
@ -1534,15 +1534,6 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
suggestedRect->left, suggestedRect->top, suggestedRect->right - suggestedRect->left, suggestedRect->bottom - suggestedRect->top);
|
suggestedRect->left, suggestedRect->top, suggestedRect->right - suggestedRect->left, suggestedRect->bottom - suggestedRect->top);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data->expected_resize) {
|
if (data->expected_resize) {
|
||||||
/* This DPI change is coming from an explicit SetWindowPos call within SDL.
|
/* This DPI change is coming from an explicit SetWindowPos call within SDL.
|
||||||
Assume all call sites are calculating the DPI-aware frame correctly, so
|
Assume all call sites are calculating the DPI-aware frame correctly, so
|
||||||
|
@ -1603,6 +1594,16 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
h,
|
h,
|
||||||
SWP_NOZORDER | SWP_NOACTIVATE);
|
SWP_NOZORDER | SWP_NOACTIVATE);
|
||||||
data->expected_resize = SDL_FALSE;
|
data->expected_resize = SDL_FALSE;
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue