Fixed issue #762 - Context menu entries for DockWidget tab missing for last dock widget

This commit is contained in:
Uwe Kindler
2025-08-22 10:07:21 +02:00
parent c020f82a6c
commit dec0442007

View File

@@ -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;