summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qmainwindow.cpp
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2016-06-27 14:12:54 +0200
committerOlivier Goffart (Woboq GmbH) <ogoffart@woboq.com>2016-07-02 13:07:21 +0000
commit27df6cb32d42c0a4475fc2d11b4c9d53d19fe394 (patch)
tree078da6e769213cd53a3c7e3a7ee22ad774666435 /src/widgets/widgets/qmainwindow.cpp
parent3d621af54be7b34e6cc6357b48c4d15f911937ee (diff)
Fix the QMainWindow context menu when there are floating tabs
If QMainWindow::GroupedDragging is enabled and there are QDockWidgetGroupWindow, we should still show actions for these QDockWidgets in the context menu Addresses point 4. of QTBUG-52108 Task-number: QTBUG-52108 Change-Id: I11ae401c4fe15e213b0f26e7579634e2062e953c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/widgets/widgets/qmainwindow.cpp')
-rw-r--r--src/widgets/widgets/qmainwindow.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/widgets/widgets/qmainwindow.cpp b/src/widgets/widgets/qmainwindow.cpp
index 1698ca1519..7a9a077e5f 100644
--- a/src/widgets/widgets/qmainwindow.cpp
+++ b/src/widgets/widgets/qmainwindow.cpp
@@ -1717,10 +1717,20 @@ QMenu *QMainWindow::createPopupMenu()
menu = new QMenu(this);
for (int i = 0; i < dockwidgets.size(); ++i) {
QDockWidget *dockWidget = dockwidgets.at(i);
- if (dockWidget->parentWidget() == this
- && !d->layout->layoutState.dockAreaLayout.indexOf(dockWidget).isEmpty()) {
- menu->addAction(dockwidgets.at(i)->toggleViewAction());
+ // filter to find out if we own this QDockWidget
+ if (dockWidget->parentWidget() == this) {
+ if (d->layout->layoutState.dockAreaLayout.indexOf(dockWidget).isEmpty())
+ continue;
+ } else if (QDockWidgetGroupWindow *dwgw =
+ qobject_cast<QDockWidgetGroupWindow *>(dockWidget->parentWidget())) {
+ if (dwgw->parentWidget() != this)
+ continue;
+ if (dwgw->layoutInfo()->indexOf(dockWidget).isEmpty())
+ continue;
+ } else {
+ continue;
}
+ menu->addAction(dockwidgets.at(i)->toggleViewAction());
}
menu->addSeparator();
}