diff --git a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp index 22588480e..b6f226836 100644 --- a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp +++ b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp @@ -164,8 +164,10 @@ void ToolWindowManager::moveToolWindows(QList toolWindows, bool useParentSplitter = false; int indexInParentSplitter = 0; QList parentSplitterGeometries; + QList parentSplitterSizes; if (parentSplitter) { indexInParentSplitter = parentSplitter->indexOf(area.widget()); + parentSplitterSizes = parentSplitter->sizes(); for(int i = 0; i < parentSplitter->count(); i++) { parentSplitterGeometries.push_back(parentSplitter->widget(i)->geometry()); } @@ -182,6 +184,10 @@ void ToolWindowManager::moveToolWindows(QList toolWindows, ToolWindowManagerArea* newArea = createArea(); newArea->addToolWindows(toolWindows); parentSplitter->insertWidget(indexInParentSplitter, newArea); + + for(int i = 0; i < qMin(parentSplitter->count(), parentSplitterGeometries.count()); i++) { + parentSplitter->widget(i)->setGeometry(parentSplitterGeometries[i]); + } } else { area.widget()->hide(); area.widget()->setParent(0); @@ -223,9 +229,14 @@ void ToolWindowManager::moveToolWindows(QList toolWindows, if (parentSplitter) { parentSplitter->insertWidget(indexInParentSplitter, splitter); - for(int i = 0; i < qMin(parentSplitter->count(), parentSplitterGeometries.count()); i++) { + for (int i = 0; i < qMin(parentSplitter->count(), parentSplitterGeometries.count()); i++) { parentSplitter->widget(i)->setGeometry(parentSplitterGeometries[i]); } + + if (parentSplitterSizes.count() > 0 && parentSplitterSizes[0] != 0) { + parentSplitter->setSizes(parentSplitterSizes); + } + } else { wrapper->layout()->addWidget(splitter); }