From 0a2a1ca32905f45891b155883e7678247744d8b4 Mon Sep 17 00:00:00 2001 From: chris Date: Fri, 19 Dec 2025 15:08:47 -0600 Subject: [PATCH] core: qt layout ui: ux/ui: fixes #26048 keep workbench selector visible --- src/Gui/WorkbenchSelector.cpp | 18 ++++++++++++++++++ src/Gui/WorkbenchSelector.h | 1 + 2 files changed, 19 insertions(+) diff --git a/src/Gui/WorkbenchSelector.cpp b/src/Gui/WorkbenchSelector.cpp index 2fab705ad0..afa539534a 100644 --- a/src/Gui/WorkbenchSelector.cpp +++ b/src/Gui/WorkbenchSelector.cpp @@ -440,4 +440,22 @@ void WorkbenchTabWidget::adjustSize() parentWidget()->adjustSize(); } +void WorkbenchComboBox::setVisible(bool visible) +{ + if (!visible && parentWidget() && parentWidget()->isVisible()) { + // ignore attempts to hide while parent is visible + // this works around a layout bug when toolbar grip is attached + // in the menu bar area + QTimer::singleShot(0, this, [this]() { + if (auto toolbar = parentWidget()) { + if (auto areaWidget = toolbar->parentWidget()) { + areaWidget->adjustSize(); + } + } + }); + return; + } + QComboBox::setVisible(visible); +} + #include "moc_WorkbenchSelector.cpp" diff --git a/src/Gui/WorkbenchSelector.h b/src/Gui/WorkbenchSelector.h index 8d586b24cc..84930b1a3b 100644 --- a/src/Gui/WorkbenchSelector.h +++ b/src/Gui/WorkbenchSelector.h @@ -53,6 +53,7 @@ Q_OBJECT // NOLINT ~WorkbenchComboBox() override = default; WorkbenchComboBox(WorkbenchComboBox&& rhs) = delete; void showPopup() override; + void setVisible(bool visible) override; WorkbenchComboBox operator=(WorkbenchComboBox&& rhs) = delete;