diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp
index 2bb28ff7b143598c919438c12a97ec43562d412a..7544c35d5d8442bb19b268e1dc3d3ce001f7b860 100644
--- a/src/libs/utils/fancymainwindow.cpp
+++ b/src/libs/utils/fancymainwindow.cpp
@@ -33,6 +33,7 @@
 #include <QtCore/QHash>
 
 #include <QtGui/QAction>
+#include <QtGui/QContextMenuEvent>
 #include <QtGui/QMenu>
 #include <QtGui/QDockWidget>
 #include <QtCore/QSettings>
@@ -179,6 +180,13 @@ void FancyMainWindow::showEvent(QShowEvent *event)
     handleVisibilityChanged(true);
 }
 
+void FancyMainWindow::contextMenuEvent(QContextMenuEvent *event)
+{
+    QMenu *menu = createPopupMenu();
+    menu->exec(event->globalPos());
+    delete menu;
+}
+
 void FancyMainWindow::handleVisibilityChanged(bool visible)
 {
     d->m_handleDockVisibilityChanges = false;
diff --git a/src/libs/utils/fancymainwindow.h b/src/libs/utils/fancymainwindow.h
index 2b0927a058f5df94e4aaee29af59ce821e7c719b..7ffeb23da955177169c7f5768a18fc2ebd189d5b 100644
--- a/src/libs/utils/fancymainwindow.h
+++ b/src/libs/utils/fancymainwindow.h
@@ -92,7 +92,7 @@ public slots:
 protected:
     void hideEvent(QHideEvent *event);
     void showEvent(QShowEvent *event);
-
+    void contextMenuEvent(QContextMenuEvent *event);
 private slots:
     void onDockActionTriggered();
     void onDockVisibilityChange(bool);
diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp
index 720ba2b1dd6e27c5c8ed140f6c041b5c53e8d1fc..167e02bd3845857f927f59fbdf15b6bb227d63b3 100644
--- a/src/plugins/debugger/debuggermainwindow.cpp
+++ b/src/plugins/debugger/debuggermainwindow.cpp
@@ -67,7 +67,7 @@ QMenu* DebuggerMainWindow::createPopupMenu()
     const QList<QDockWidget* > dockwidgets = m_uiSwitcher->i_mw_dockWidgets();
 
     if (!dockwidgets.isEmpty()) {
-        menu = new QMenu(this);
+        menu = FancyMainWindow::createPopupMenu();
 
         foreach (QDockWidget *dockWidget, dockwidgets) {
             if (dockWidget->parentWidget() == this)