diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 64fce69d..ec8209da 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -116,3 +116,9 @@ SideBar *MainWindow::sideBar(SideBarLocation location) const { return d->m_sideBars.value(location); } + +void MainWindow::resizeEvent(QResizeEvent *ev) +{ + MainWindowBase::resizeEvent(ev); + onResized(ev); // Also call our own handler, since QtQuick doesn't have resizeEvent() +} diff --git a/src/MainWindow.h b/src/MainWindow.h index 38f63249..e273707e 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -50,6 +50,9 @@ public: ///@brief returns the sidebar for the specified location SideBar *sideBar(SideBarLocation) const override; +protected: + void resizeEvent(QResizeEvent *) override; + private: using QMainWindow::setCentralWidget; void setCentralWidget(QWidget *); // overridden just to make it private diff --git a/src/MainWindowBase.cpp b/src/MainWindowBase.cpp index 49c41f46..4fef53d2 100644 --- a/src/MainWindowBase.cpp +++ b/src/MainWindowBase.cpp @@ -231,7 +231,7 @@ void MainWindowBase::Private::updateOverlayGeometry() return; } - m_overlayedDockWidget->setGeometry(rectForOverlay(m_overlayedDockWidget->frame(), sb->location())); + m_overlayedDockWidget->frame()->QWidgetAdapter::setGeometry(rectForOverlay(m_overlayedDockWidget->frame(), sb->location())); } void MainWindowBase::moveToSideBar(DockWidgetBase *dw) @@ -350,6 +350,12 @@ void MainWindowBase::setUniqueName(const QString &uniqueName) } } +void MainWindowBase::onResized(QResizeEvent *) +{ + if (d->m_overlayedDockWidget) + d->updateOverlayGeometry(); +} + bool MainWindowBase::deserialize(const LayoutSaver::MainWindow &mw) { if (mw.options != options()) { diff --git a/src/MainWindowBase.h b/src/MainWindowBase.h index 89b4fcfc..1d92e30b 100644 --- a/src/MainWindowBase.h +++ b/src/MainWindowBase.h @@ -164,6 +164,7 @@ public: protected: void setUniqueName(const QString &uniqueName); + void onResized(QResizeEvent *); // Because QtQuick doesn't have resizeEvent() virtual SideBar* sideBar(SideBarLocation) const = 0;