diff --git a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp index 14c745970..135da0775 100644 --- a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp +++ b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp @@ -452,7 +452,7 @@ void ToolWindowManager::moveToolWindows(QList toolWindows, } } -void ToolWindowManager::removeToolWindow(QWidget *toolWindow) +void ToolWindowManager::removeToolWindow(QWidget *toolWindow, bool allowCloseAlreadyChecked) { if(!m_toolWindows.contains(toolWindow)) { @@ -469,8 +469,11 @@ void ToolWindowManager::removeToolWindow(QWidget *toolWindow) return; } - if(!manager->allowClose(toolWindow)) - return; + if(!allowCloseAlreadyChecked) + { + if(!manager->allowClose(toolWindow)) + return; + } moveToolWindow(toolWindow, NoArea); m_toolWindows.removeOne(toolWindow); @@ -1429,7 +1432,7 @@ void ToolWindowManager::tabCloseRequested(int index) if(toolWindowProperties(toolWindow) & ToolWindowManager::HideOnClose) hideToolWindow(toolWindow); else - removeToolWindow(toolWindow); + removeToolWindow(toolWindow, true); } void ToolWindowManager::windowTitleChanged(const QString &) diff --git a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.h b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.h index ef58428d6..48539d66c 100644 --- a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.h +++ b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.h @@ -228,8 +228,7 @@ public: * \brief Removes \a toolWindow from the manager. \a toolWindow becomes a hidden * top level widget. The ownership of \a toolWindow is returned to the caller. */ - void removeToolWindow(QWidget *toolWindow); - + void removeToolWindow(QWidget *toolWindow) { removeToolWindow(toolWindow, false); } /*! * Returns if \a toolWindow is floating instead of being docked. */ @@ -309,6 +308,8 @@ private: bool allowClose(QWidget *toolWindow); + void removeToolWindow(QWidget *toolWindow, bool allowCloseAlreadyChecked); + // last widget used for adding tool windows, or 0 if there isn't one // (warning: may contain pointer to deleted object) ToolWindowManagerArea *m_lastUsedArea;