From d099da1e3b8f7dd4c9c23b6b471ec5ffd8ddcc10 Mon Sep 17 00:00:00 2001 From: Sasha Szpakowski Date: Fri, 25 Oct 2024 18:52:46 -0300 Subject: [PATCH] Fix setting window position --- src/modules/window/sdl/Window.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/modules/window/sdl/Window.cpp b/src/modules/window/sdl/Window.cpp index 749d89878..65517f5ad 100644 --- a/src/modules/window/sdl/Window.cpp +++ b/src/modules/window/sdl/Window.cpp @@ -539,16 +539,16 @@ bool Window::setWindow(int width, int height, WindowSettings *settings) { // The position needs to be in the global coordinate space. SDL_Rect displaybounds = {}; - SDL_GetDisplayBounds(f.displayindex, &displaybounds); + SDL_GetDisplayBounds(displays.ids[f.displayindex], &displaybounds); x += displaybounds.x; y += displaybounds.y; } else { if (f.centered) - x = y = SDL_WINDOWPOS_CENTERED_DISPLAY(f.displayindex); + x = y = SDL_WINDOWPOS_CENTERED_DISPLAY(displays.ids[f.displayindex]); else - x = y = SDL_WINDOWPOS_UNDEFINED_DISPLAY(f.displayindex); + x = y = SDL_WINDOWPOS_UNDEFINED_DISPLAY(displays.ids[f.displayindex]); } Uint32 sdlflags = 0; @@ -969,10 +969,12 @@ void Window::setPosition(int x, int y, int displayindex) if (!window) return; - displayindex = std::min(std::max(displayindex, 0), getDisplayCount() - 1); + SDLDisplayIDs displayids; + + displayindex = std::min(std::max(displayindex, 0), displayids.count - 1); SDL_Rect displaybounds = {}; - SDL_GetDisplayBounds(displayindex, &displaybounds); + SDL_GetDisplayBounds(displayids.ids[displayindex], &displaybounds); // The position needs to be in the global coordinate space. x += displaybounds.x;