From dec044200760b23c06d7562dc8982773992de1e5 Mon Sep 17 00:00:00 2001 From: Uwe Kindler Date: Fri, 22 Aug 2025 10:07:21 +0200 Subject: [PATCH] Fixed issue #762 - Context menu entries for DockWidget tab missing for last dock widget --- src/DockWidgetTab.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/DockWidgetTab.cpp b/src/DockWidgetTab.cpp index bb1bd93..d633c5a 100644 --- a/src/DockWidgetTab.cpp +++ b/src/DockWidgetTab.cpp @@ -50,7 +50,6 @@ #include "FloatingDockContainer.h" #include "DockOverlay.h" #include "DockManager.h" -#include "IconProvider.h" #include "DockFocusController.h" @@ -540,13 +539,14 @@ QMenu* CDockWidgetTab::buildContextMenu(QMenu *Menu) Menu = new QMenu(this); } + qDebug() << "CDockWidgetTab::buildContextMenu"; const bool isFloatable = d->DockWidget->features().testFlag(CDockWidget::DockWidgetFloatable); - const bool isNotOnlyTabInContainer = !d->DockArea->dockContainer()->hasTopLevelDockWidget(); const bool isTopLevelArea = d->DockArea->isTopLevelArea(); - const bool isDetachable = isFloatable && isNotOnlyTabInContainer; + const bool isFloating = d->DockWidget->isFloating(); + const bool isDetachable = isFloatable && !isFloating; QAction* Action; - if (!isTopLevelArea) + if (!(isTopLevelArea && isFloating)) { Action = Menu->addAction(tr("Detach"), this, SLOT(detachDockWidget())); Action->setEnabled(isDetachable); @@ -570,7 +570,7 @@ QMenu* CDockWidgetTab::buildContextMenu(QMenu *Menu) Action->setEnabled(isClosable()); if (d->DockArea->openDockWidgetsCount() > 1) { - Action = Menu->addAction(tr("Close Others"), this, SIGNAL(closeOtherTabsRequested())); + Menu->addAction(tr("Close Others"), this, SIGNAL(closeOtherTabsRequested())); } return Menu;