From 498968b89cbceab6939b72c1ba836728a0b8df24 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Wed, 22 Oct 2025 23:58:30 +0200 Subject: [PATCH] Sketcher: Do not open command if one is pending in doSetVisible (#24778) * Sketcher: Do not open command if one is pending in doSetVisible * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp b/src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp index 8fea77e46d..bcc79d8664 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp +++ b/src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp @@ -1554,17 +1554,25 @@ bool TaskSketcherConstraints::doSetVisible(const std::vector& constrIds, bo std::string constrIdList = stream.str(); - Gui::Command::openCommand( - QT_TRANSLATE_NOOP("Command", "Update constraint's visibility")); + // Do not create a command if there is already a command (ea Dimension tool) running + bool createCommand = !Gui::Command::hasPendingCommand(); + if (createCommand) { + Gui::Command::openCommand( + QT_TRANSLATE_NOOP("Command", "Update constraint's visibility")); + } try { Gui::cmdAppObjectArgs(sketch, "setVisibility(%s, %s)", constrIdList, isVisible ? "True" : "False"); - Gui::Command::commitCommand(); + if (createCommand) { + Gui::Command::commitCommand(); + } } catch (const Base::Exception& e) { - Gui::Command::abortCommand(); + if (createCommand) { + Gui::Command::abortCommand(); + } Gui::TranslatedUserError( sketch, tr("Error"), tr("Impossible to update visibility:") + QLatin1String(" ") + QLatin1String(e.what()));