diff options
-rw-r--r-- | src/gfx.cpp | 22 | ||||
-rw-r--r-- | src/window.cpp | 13 |
2 files changed, 14 insertions, 21 deletions
diff --git a/src/gfx.cpp b/src/gfx.cpp index ed0077e3f..f20f34923 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -21,7 +21,6 @@ #include "texteff.hpp" #include "blitter/factory.hpp" #include "video/video_driver.hpp" -#include "window.h" byte _dirkeys; ///< 1 = left, 2 = up, 4 = right, 8 = down bool _fullscreen; @@ -1150,26 +1149,7 @@ void SetAnimatedMouseCursor(const AnimCursor *table) bool ChangeResInGame(int width, int height) { - bool ret = (_screen.width == width && _screen.height == height) || _video_driver->ChangeResolution(width, height); - - int new_width = min(_screen.width, 640); - Window *w = FindWindowById(WC_MAIN_TOOLBAR, 0); - if (w != NULL && new_width != w->width) { - ResizeWindow(w, new_width - w->width, 0); - - Window *w2 = FindWindowById(WC_STATUS_BAR, 0); - if (w2 != NULL) ResizeWindow(w2, max(new_width, 320) - w2->width, 0); - - WindowEvent e; - e.event = WE_RESIZE; - e.we.sizing.size.x = w->width; - e.we.sizing.size.y = w->height; - e.we.sizing.diff.x = new_width - w->width; - e.we.sizing.diff.y = 0; - w->wndproc(w, &e); - } - - return ret; + return (_screen.width == width && _screen.height == height) || _video_driver->ChangeResolution(width, height); } void ToggleFullScreen(bool fs) diff --git a/src/window.cpp b/src/window.cpp index db4052de3..0427dd309 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -2047,6 +2047,18 @@ void RelocateAllWindows(int neww, int newh) * in a 'backup'-desc that the window should always be centred. */ switch (w->window_class) { case WC_MAIN_TOOLBAR: + if (neww - w->width != 0) { + ResizeWindow(w, min(neww, 640) - w->width, 0); + + WindowEvent e; + e.event = WE_RESIZE; + e.we.sizing.size.x = w->width; + e.we.sizing.size.y = w->height; + e.we.sizing.diff.x = neww - w->width; + e.we.sizing.diff.y = 0; + w->wndproc(w, &e); + } + top = w->top; left = PositionMainToolbar(w); // changes toolbar orientation break; @@ -2064,6 +2076,7 @@ void RelocateAllWindows(int neww, int newh) break; case WC_STATUS_BAR: + ResizeWindow(w, clamp(neww, 320, 640) - w->width, 0); top = newh - w->height; left = (neww - w->width) >> 1; break; |