From 3ef1ac97c21205450570e08893489129416d67f9 Mon Sep 17 00:00:00 2001 From: Syarif Fakhri Date: Fri, 9 Sep 2022 15:24:33 +0800 Subject: [PATCH] Fix splitter size being saved incorrectly if the overlay widget is never opened --- src/OverlayDockContainer.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/OverlayDockContainer.cpp b/src/OverlayDockContainer.cpp index d908dcd..0d14d51 100644 --- a/src/OverlayDockContainer.cpp +++ b/src/OverlayDockContainer.cpp @@ -191,6 +191,19 @@ void COverlayDockContainer::addDockWidget(CDockWidget* DockWidget) } d->DockArea->addDockWidget(DockWidget); + const auto dockContainerParent = parentContainer(); + const auto rootSplitter = dockContainerParent->rootSplitter(); + const auto rect = rootSplitter->frameGeometry(); + const auto dockWidth = DockWidget->size().width(); + if (d->Area == CDockWidgetSideTab::SideTabBarArea::Left) + { + d->Splitter->setSizes({ dockWidth, rect.width() - dockWidth }); + } + else + { + d->Splitter->setSizes({ rect.width() - dockWidth, dockWidth }); + } + updateSize(); updateMask(); }