From 372b54ca7aa4a4bd87d3232fefafcb0133a55b59 Mon Sep 17 00:00:00 2001 From: Matt Gajownik Date: Tue, 22 Feb 2022 00:40:17 +1100 Subject: [PATCH] UI: Display dock-relevant context menu on titlebar --- UI/window-basic-main.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 8b337daa7..f70f54d72 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -9930,11 +9930,25 @@ void OBSBasic::on_customContextMenuRequested(const QPoint &pos) { QWidget *widget = childAt(pos); const char *className = nullptr; - if (widget != nullptr) + QString objName; + if (widget != nullptr) { className = widget->metaObject()->className(); + objName = widget->objectName(); + } - if (!className || strstr(className, "Dock") != nullptr) - ui->menuDocks->exec(mapToGlobal(pos)); + QPoint globalPos = mapToGlobal(pos); + if (className && strstr(className, "Dock") != nullptr && + !objName.isEmpty()) { + if (objName.compare("scenesDock") == 0) { + ui->scenes->customContextMenuRequested(globalPos); + } else if (objName.compare("sourcesDock") == 0) { + ui->sources->customContextMenuRequested(globalPos); + } else if (objName.compare("mixerDock") == 0) { + StackedMixerAreaContextMenuRequested(); + } + } else if (!className) { + ui->menuDocks->exec(globalPos); + } } void OBSBasic::UpdateProjectorHideCursor()