From 3872d0682d3a5cab121e58e096dcd64874890eaf Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Mon, 22 Sep 2025 16:01:29 +0200 Subject: [PATCH] Sketcher: Improve circle constraint position (#23569) * Make prevCursorPosition protected so tools can use it * DrawSketchHandlerCircle : Position constraint on prevCursorPosition * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * [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/DrawSketchController.h | 3 ++- src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h | 4 +--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Mod/Sketcher/Gui/DrawSketchController.h b/src/Mod/Sketcher/Gui/DrawSketchController.h index 3a228b1a11..2ba0cd4b7f 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchController.h +++ b/src/Mod/Sketcher/Gui/DrawSketchController.h @@ -145,8 +145,9 @@ protected: }; //@} -private: Base::Vector2d prevCursorPosition; + +private: Base::Vector2d lastControlEnforcedPosition; int nOnViewParameter = OnViewParametersT::defaultMethodSize(); diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h index 1b547cf5bf..4727c4f825 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h @@ -720,9 +720,7 @@ void DSHCircleController::addConstraints() const std::vector& ConStr = handler->sketchgui->getSketchObject()->Constraints.getValues(); int index = static_cast(ConStr.size()) - 1; - Base::Vector2d dir = handler->secondPoint - handler->centerPoint; - Base::Vector2d toPnt = handler->secondPoint + dir * 0.3; - handler->moveConstraint(index, toPnt); + handler->moveConstraint(index, prevCursorPosition); }; // NOTE: if AutoConstraints is empty, we can add constraints directly without any diagnose.