diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libui_sdl/main.cpp | 66 |
1 files changed, 32 insertions, 34 deletions
diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp index 34d0760..d55b864 100644 --- a/src/libui_sdl/main.cpp +++ b/src/libui_sdl/main.cpp @@ -838,6 +838,33 @@ void OnOpenInputConfig(uiMenuItem* item, uiWindow* window, void* blarg) } +void EnsureProperMinSize() +{ + bool isHori = (ScreenRotation == 1 || ScreenRotation == 3); + + if (ScreenLayout == 0) // natural + { + if (isHori) + SetMinSize(384+ScreenGap, 256); + else + SetMinSize(256, 384+ScreenGap); + } + else if (ScreenLayout == 1) // vertical + { + if (isHori) + SetMinSize(192, 512+ScreenGap); + else + SetMinSize(256, 384+ScreenGap); + } + else // horizontal + { + if (isHori) + SetMinSize(384+ScreenGap, 256); + else + SetMinSize(512+ScreenGap, 192); + } +} + void OnSetScreenRotation(uiMenuItem* item, uiWindow* window, void* param) { int rot = *(int*)param; @@ -851,13 +878,10 @@ void OnSetScreenRotation(uiMenuItem* item, uiWindow* window, void* param) bool isHori = (rot == 1 || rot == 3); bool wasHori = (oldrot == 1 || oldrot == 3); + EnsureProperMinSize(); + if (ScreenLayout == 0) // natural { - if (isHori) - SetMinSize(384+ScreenGap, 256); - else - SetMinSize(256, 384+ScreenGap); - if (isHori ^ wasHori) { int blarg = h; @@ -869,20 +893,6 @@ void OnSetScreenRotation(uiMenuItem* item, uiWindow* window, void* param) Config::WindowHeight = h; } } - else if (ScreenLayout == 1) // vertical - { - if (isHori) - SetMinSize(192, 512+ScreenGap); - else - SetMinSize(256, 384+ScreenGap); - } - else // horizontal - { - if (isHori) - SetMinSize(384+ScreenGap, 256); - else - SetMinSize(512+ScreenGap, 192); - } SetupScreenRects(w, h); @@ -894,23 +904,10 @@ void OnSetScreenGap(uiMenuItem* item, uiWindow* window, void* param) { int gap = *(int*)param; - int oldgap = ScreenGap; + //int oldgap = ScreenGap; ScreenGap = gap; - // resize window as needed - // TODO: adapt to horizontal modes - // TODO: always resize window? except if it's maximized - int w, h; - uiWindowContentSize(window, &w, &h); - { - h -= gap; - if (h < 384) - { - h = 384 + gap; - uiWindowSetContentSize(window, w, h); - } - } - + EnsureProperMinSize(); SetupScreenRects(Config::WindowWidth, Config::WindowHeight); for (int i = 0; i < 6; i++) @@ -922,6 +919,7 @@ void OnSetScreenLayout(uiMenuItem* item, uiWindow* window, void* param) int layout = *(int*)param; ScreenLayout = layout; + EnsureProperMinSize(); SetupScreenRects(Config::WindowWidth, Config::WindowHeight); for (int i = 0; i < 3; i++) |