From 5020ea5c875a1f8d8c6468f40f0e1f9b4c482045 Mon Sep 17 00:00:00 2001 From: Guillaume Melquiond Date: Sun, 21 Oct 2007 10:41:36 +0000 Subject: Added automatic layout reflowing on window resize. --- ChangeLog | 2 +- src/gui/window.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 477995bf..27190a63 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,7 +2,7 @@ * src/gui/window.cpp, src/gui/window.h: Removed redundant resizable flag. Factored moving/resizing code, so that events are fired only - once per size change. + once per size change. Added automatic layout reflowing on resize. * src/gui/widgets/layout.cpp: Allowed for decreasing sizes in layout. 2007-10-20 Guillaume Melquiond diff --git a/src/gui/window.cpp b/src/gui/window.cpp index 48fe3bfb..bf5f03db 100644 --- a/src/gui/window.cpp +++ b/src/gui/window.cpp @@ -229,6 +229,13 @@ void Window::setSize(int width, int height) height - mGrip->getHeight() - area.y); } + if (mLayout) + { + mLayout->setWidth(width - 2 * getPadding()); + mLayout->setHeight(height - getPadding() - getTitleBarHeight()); + mLayout->reflow(); + } + fireWindowEvent(WindowEvent(this, WindowEvent::WINDOW_RESIZED)); } @@ -615,5 +622,9 @@ void Window::reflowLayout() { if (!mLayout) return; mLayout->reflow(); + Layout *tmp = mLayout; + // Hide it so that the incoming resize does not reflow the layout again. + mLayout = NULL; resizeToContent(); + mLayout = tmp; } -- cgit v1.2.3-70-g09d2