diff --git a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp index ead52ff25..2c83b55b6 100644 --- a/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp +++ b/qrenderdoc/3rdparty/toolwindowmanager/ToolWindowManager.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -792,6 +793,16 @@ void ToolWindowManager::tabCloseRequested(int index) { return; } + int methodIndex = toolWindow->metaObject()->indexOfMethod(QMetaObject::normalizedSignature("checkAllowClose()")); + + if(methodIndex >= 0) { + bool ret = true; + toolWindow->metaObject()->method(methodIndex).invoke(toolWindow, Qt::DirectConnection, Q_RETURN_ARG(bool, ret)); + + if(!ret) + return; + } + if(toolWindowProperties(toolWindow) & ToolWindowManager::HideOnClose) hideToolWindow(toolWindow); else