From fcacf443750f7cb83d38a4daaaa8adb2971ec3ef Mon Sep 17 00:00:00 2001 From: Hyunjin Song Date: Tue, 12 Feb 2019 14:27:08 +0900 Subject: [PATCH] Ensure the restore button of a subwindow shows up correctly (#4819) * SubWindow: ensure the restore button shows up correctly * Remove old workaround for the maximize behavior on Mac --- include/SubWindow.h | 1 - src/gui/SubWindow.cpp | 22 ++++------------------ 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/include/SubWindow.h b/include/SubWindow.h index 99bd49552..ac5a4e63c 100644 --- a/include/SubWindow.h +++ b/include/SubWindow.h @@ -81,7 +81,6 @@ private: QGraphicsDropShadowEffect * m_shadow; static void elideText( QLabel *label, QString text ); - bool isMaximized(); void adjustTitleBar(); }; diff --git a/src/gui/SubWindow.cpp b/src/gui/SubWindow.cpp index 0a0effc45..8341024b3 100644 --- a/src/gui/SubWindow.cpp +++ b/src/gui/SubWindow.cpp @@ -148,23 +148,6 @@ void SubWindow::elideText( QLabel *label, QString text ) -bool SubWindow::isMaximized() -{ -#ifdef LMMS_BUILD_APPLE - // check if subwindow size is identical to the MdiArea size, accounting for scrollbars - int hScrollBarHeight = mdiArea()->horizontalScrollBar()->isVisible() ? mdiArea()->horizontalScrollBar()->size().height() : 0; - int vScrollBarWidth = mdiArea()->verticalScrollBar()->isVisible() ? mdiArea()->verticalScrollBar()->size().width() : 0; - QSize areaSize( this->mdiArea()->size().width() - vScrollBarWidth, this->mdiArea()->size().height() - hScrollBarHeight ); - - return areaSize == this->size(); -#else - return QMdiSubWindow::isMaximized(); -#endif -} - - - - QRect SubWindow::getTrueNormalGeometry() const { return m_trackedNormalGeom; @@ -302,8 +285,11 @@ void SubWindow::adjustTitleBar() void SubWindow::resizeEvent( QResizeEvent * event ) { - adjustTitleBar(); + // When the parent QMdiArea gets resized, maximized subwindows also gets resized, if any. + // In that case, we should call QMdiSubWindow::resizeEvent first + // to ensure we get the correct window state. QMdiSubWindow::resizeEvent( event ); + adjustTitleBar(); // if the window was resized and ISN'T minimized/maximized/fullscreen, // then save the current size