From ab814604b5a3cfb7cf9bb13a99bd4e494a04bd58 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 29 Jan 2022 17:23:45 -0500 Subject: [PATCH] limit window size to available space for smaller than 1280x800 displays --- src/gui/gui.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index ecda5d07f..e385eae6d 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -5356,6 +5356,8 @@ bool FurnaceGUI::init() { SDL_Surface* icon=SDL_CreateRGBSurfaceFrom(furIcon,256,256,32,256*4,0xff,0xff00,0xff0000,0xff000000); #endif + SDL_Rect displaySize; + sdlWin=SDL_CreateWindow("Furnace",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,scrW*dpiScale,scrH*dpiScale,SDL_WINDOW_RESIZABLE|SDL_WINDOW_ALLOW_HIGHDPI); if (sdlWin==NULL) { logE("could not open window!\n"); @@ -5367,6 +5369,12 @@ bool FurnaceGUI::init() { if (dpiScale<1) dpiScale=1; if (dpiScale!=1) SDL_SetWindowSize(sdlWin,scrW*dpiScale,scrH*dpiScale); + if (SDL_GetDisplayUsableBounds(SDL_GetWindowDisplayIndex(sdlWin),&displaySize)==0) { + if (scrW>displaySize.w/dpiScale) scrW=(displaySize.w/dpiScale)-32; + if (scrH>displaySize.h/dpiScale) scrH=(displaySize.h/dpiScale)-32; + SDL_SetWindowSize(sdlWin,scrW*dpiScale,scrH*dpiScale); + } + #if !(defined(__APPLE__) || defined(_WIN32)) if (icon!=NULL) { SDL_SetWindowIcon(sdlWin,icon);