From aa4a158e0ca4d4cca219c29e4a87fbc4ecfbaa67 Mon Sep 17 00:00:00 2001 From: Paddle Date: Fri, 3 Nov 2023 18:19:49 +0100 Subject: [PATCH] Prevent passing the focus to a spinbox when it shouldn't. In some DSH some mode (seekSecond for example) don't have onViewParameter. In this case it would wrongly try to give focus to the previous spinbox with focus. --- src/Mod/Sketcher/Gui/DrawSketchController.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Mod/Sketcher/Gui/DrawSketchController.h b/src/Mod/Sketcher/Gui/DrawSketchController.h index 2b5b8ec89d..cd54f9e43e 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchController.h +++ b/src/Mod/Sketcher/Gui/DrawSketchController.h @@ -406,7 +406,9 @@ protected: virtual void afterEnforceControlParameters() { // Give focus to current on-view parameter. In case user interacted outside of 3dview. - setFocusToOnViewParameter(onViewIndexWithFocus); + if (onViewIndexWithFocus >= 0) { + setFocusToOnViewParameter(onViewIndexWithFocus); + } } virtual void doConstructionMethodChanged() @@ -489,6 +491,8 @@ protected: void setModeOnViewParameters() { bool firstOfMode = true; + onViewIndexWithFocus = -1; + for (size_t i = 0; i < onViewParameters.size(); i++) { if (!isOnViewParameterOfCurrentMode(i)) { onViewParameters[i]->stopEdit();