From 757153fce540d9c08cd3c7e9eedfbaf7fbe91857 Mon Sep 17 00:00:00 2001
From: hjk <hjk@qt.io>
Date: Fri, 11 Nov 2016 15:46:27 +0100
Subject: [PATCH] ProjectExplorer: Don't show context menu when it makes no
 sense

Task-number: QTCREATORBUG-17152
Change-Id: Ic67386bdfd6d6d79e8a15bc6394a22cb46305335
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
---
 src/plugins/projectexplorer/projectwindow.cpp | 12 +++---------
 src/plugins/projectexplorer/projectwindow.h   |  1 -
 2 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index 328f2591904..b1642c91b07 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -518,6 +518,9 @@ public:
 ProjectWindow::ProjectWindow()
 {
     setBackgroundRole(QPalette::Base);
+
+    // Request custom context menu but do not provide any to avoid
+    // the creation of the dock window selection menu.
     setContextMenuPolicy(Qt::CustomContextMenu);
 
     auto selectorModel = new SelectorModel(this, [this](QWidget *panel) { setPanel(panel); });
@@ -553,15 +556,6 @@ ProjectWindow::ProjectWindow()
 
     auto selectorDock = addDockForWidget(selectorView, true);
     addDockWidget(Qt::LeftDockWidgetArea, selectorDock);
-
-    connect(this, &QWidget::customContextMenuRequested,
-            selectorModel, &SelectorModel::openContextMenu);
-}
-
-void ProjectWindow::contextMenuEvent(QContextMenuEvent *event)
-{
-    Q_UNUSED(event)
-    // Do nothing to avoid creation of the dock window selection menu.
 }
 
 void ProjectWindow::setPanel(QWidget *panel)
diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h
index aa61d412967..87694ad0852 100644
--- a/src/plugins/projectexplorer/projectwindow.h
+++ b/src/plugins/projectexplorer/projectwindow.h
@@ -56,7 +56,6 @@ public:
     ProjectWindow();
 
 private:
-    void contextMenuEvent(QContextMenuEvent *event) override;
     void setPanel(QWidget *panel);
 };
 
-- 
GitLab