From 0b6c09da028099da141947760f712279845dd614 Mon Sep 17 00:00:00 2001 From: Flyinghead Date: Sun, 5 Feb 2023 11:30:23 +0100 Subject: [PATCH] sdl: don't rely on event to get window size when processing resize event window size may be different from drawable size if high-dpi is enabled. Fixes wayland resize with scale factor > 100%. --- core/sdl/sdl.cpp | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/core/sdl/sdl.cpp b/core/sdl/sdl.cpp index 7c93bf6fa..c49863934 100644 --- a/core/sdl/sdl.cpp +++ b/core/sdl/sdl.cpp @@ -292,26 +292,17 @@ void input_sdl_handle() || event.window.event == SDL_WINDOWEVENT_MINIMIZED || event.window.event == SDL_WINDOWEVENT_MAXIMIZED) { - if (event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED - && event.window.data1 != 0 && event.window.data2 != 0) - { - settings.display.width = event.window.data1; - settings.display.height = event.window.data2; - } - else - { #ifdef USE_VULKAN - if (windowFlags & SDL_WINDOW_VULKAN) - SDL_Vulkan_GetDrawableSize(window, &settings.display.width, &settings.display.height); - else + if (windowFlags & SDL_WINDOW_VULKAN) + SDL_Vulkan_GetDrawableSize(window, &settings.display.width, &settings.display.height); + else #endif #ifdef USE_OPENGL - if (windowFlags & SDL_WINDOW_OPENGL) - SDL_GL_GetDrawableSize(window, &settings.display.width, &settings.display.height); - else + if (windowFlags & SDL_WINDOW_OPENGL) + SDL_GL_GetDrawableSize(window, &settings.display.width, &settings.display.height); + else #endif - SDL_GetWindowSize(window, &settings.display.width, &settings.display.height); - } + SDL_GetWindowSize(window, &settings.display.width, &settings.display.height); GraphicsContext::Instance()->resize(); } else if (event.window.event == SDL_WINDOWEVENT_FOCUS_GAINED)