From 45b621b4544b47f56e2b101e0fc025b71233b1a2 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Thu, 22 Jan 2026 20:24:29 +0100 Subject: [PATCH] Core: Overlay: Improve AutoTask mode (#26768) --- src/Gui/OverlayManager.cpp | 1 + src/Gui/OverlayWidgets.cpp | 4 ++++ src/Gui/TaskView/TaskView.cpp | 6 ++++++ 3 files changed, 11 insertions(+) diff --git a/src/Gui/OverlayManager.cpp b/src/Gui/OverlayManager.cpp index 522cd6cb9b..ef596ccb26 100644 --- a/src/Gui/OverlayManager.cpp +++ b/src/Gui/OverlayManager.cpp @@ -409,6 +409,7 @@ public: Application::Instance->signalResetEdit.connect([this](const ViewProviderDocumentObject&) { refresh(); }); + Application::Instance->signalActivateWorkbench.connect([this](const char*) { refresh(); }); _actOverlay.setData(QStringLiteral("OBTN Overlay")); _actFloat.setData(QStringLiteral("OBTN Float")); diff --git a/src/Gui/OverlayWidgets.cpp b/src/Gui/OverlayWidgets.cpp index 0ae7f9d22f..8edd50c1ad 100644 --- a/src/Gui/OverlayWidgets.cpp +++ b/src/Gui/OverlayWidgets.cpp @@ -1249,6 +1249,10 @@ bool OverlayTabWidget::checkAutoHide() const && (!Control().taskPanel() || Control().taskPanel()->isEmpty(false)); } + if (autoMode == AutoMode::TaskShow) { + return (!Control().taskPanel() || Control().taskPanel()->isEmpty()); + } + if (autoMode == AutoMode::EditHide && Application::Instance->editDocument()) { return true; } diff --git a/src/Gui/TaskView/TaskView.cpp b/src/Gui/TaskView/TaskView.cpp index 1bc3b5e29f..9d104ab1fe 100644 --- a/src/Gui/TaskView/TaskView.cpp +++ b/src/Gui/TaskView/TaskView.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include "TaskView.h" #include "TaskDialog.h" @@ -672,6 +673,8 @@ void TaskView::showDialog(TaskDialog* dlg) triggerMinimumSizeHint(); Q_EMIT taskUpdate(); + + OverlayManager::instance()->refresh(); } void TaskView::removeDialog() @@ -713,6 +716,9 @@ void TaskView::removeDialog() tryRestoreWidth(); triggerMinimumSizeHint(); + + clearFocus(); + OverlayManager::instance()->refresh(); } void TaskView::setShowTaskWatcher(bool show) {