From d170724bdb8a968a54babe6d625579fd78215954 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 29 May 2017 15:59:26 +0100 Subject: [PATCH] Update to toolwindowmanager 8e36057 to get a couple of important fixes --- .../3rdparty/toolwindowmanager/ToolWindowManager.cpp | 12 ++++++++++-- .../toolwindowmanager/ToolWindowManagerWrapper.cpp | 12 +++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp index da935608c..50db5a76e 100644 --- a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp +++ b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp @@ -334,10 +334,18 @@ void ToolWindowManager::moveToolWindows(QList toolWindows, newArea->setGeometry(newGeometry); // Convert area percentage desired to relative sizes. - const int totalStretch = 100; + const int totalStretch = + (area.type() == TopOf || area.type() == BottomOf) + ? areaGeometry.height() : areaGeometry.width(); int pct = int(totalStretch*area.percentage()); - splitter->setSizes({pct, totalStretch-pct}); + int a = pct; + int b = totalStretch-pct; + + if (area.type() == BottomOf || area.type() == RightOf) + std::swap(a, b); + + splitter->setSizes({a, b}); } } else if (area.type() == EmptySpace) { ToolWindowManagerArea* newArea = createArea(); diff --git a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManagerWrapper.cpp b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManagerWrapper.cpp index 32896e899..6f1e7016b 100644 --- a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManagerWrapper.cpp +++ b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManagerWrapper.cpp @@ -151,7 +151,9 @@ void ToolWindowManagerWrapper::updateTitle() { void ToolWindowManagerWrapper::closeEvent(QCloseEvent *) { QList toolWindows; foreach(ToolWindowManagerArea* tabWidget, findChildren()) { - toolWindows << tabWidget->toolWindows(); + if (ToolWindowManager::managerOf(tabWidget) == m_manager) { + toolWindows << tabWidget->toolWindows(); + } } m_manager->moveToolWindows(toolWindows, ToolWindowManager::NoArea); } @@ -192,7 +194,9 @@ bool ToolWindowManagerWrapper::eventFilter(QObject *object, QEvent *event) { m_dragReady = false; QList toolWindows; foreach(ToolWindowManagerArea* tabWidget, findChildren()) { - toolWindows << tabWidget->toolWindows(); + if (ToolWindowManager::managerOf(tabWidget) == m_manager) { + toolWindows << tabWidget->toolWindows(); + } } m_manager->startDrag(toolWindows, this); } @@ -280,7 +284,9 @@ bool ToolWindowManagerWrapper::eventFilter(QObject *object, QEvent *event) { m_dragStartGeometry = geometry(); QList toolWindows; foreach(ToolWindowManagerArea* tabWidget, findChildren()) { - toolWindows << tabWidget->toolWindows(); + if (ToolWindowManager::managerOf(tabWidget) == m_manager) { + toolWindows << tabWidget->toolWindows(); + } } m_manager->startDrag(toolWindows, this); } else if (event->type() == QEvent::Move && m_dragActive) {