From c9a434377aa014a4cfa451e48bf11512afacd8b6 Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Fri, 6 Jun 2025 10:21:17 +0200 Subject: [PATCH] Draft: fix focus behavior if Length has default focus and axis constraint is used Fixes #21774. The X, Y or Z input should have priority is an axis constraint is used. --- src/Mod/Draft/DraftGui.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 02b0f541e2..96dc3e97c6 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -638,13 +638,7 @@ class DraftToolBar: self.checkLocal() def setFocus(self,f=None): - if params.get_param("focusOnLength") and self.lengthValue.isVisible(): - self.lengthValue.setFocus() - self.lengthValue.setSelection(0,self.number_length(self.lengthValue.text())) - elif self.angleLock.isVisible() and self.angleLock.isChecked(): - self.lengthValue.setFocus() - self.lengthValue.setSelection(0,self.number_length(self.lengthValue.text())) - elif (f is None) or (f == "x"): + if f == "x": self.xValue.setFocus() self.xValue.setSelection(0,self.number_length(self.xValue.text())) elif f == "y": @@ -656,6 +650,16 @@ class DraftToolBar: elif f == "radius": self.radiusValue.setFocus() self.radiusValue.setSelection(0,self.number_length(self.radiusValue.text())) + elif params.get_param("focusOnLength") and self.lengthValue.isVisible(): + self.lengthValue.setFocus() + self.lengthValue.setSelection(0,self.number_length(self.lengthValue.text())) + elif self.angleLock.isVisible() and self.angleLock.isChecked(): + self.lengthValue.setFocus() + self.lengthValue.setSelection(0,self.number_length(self.lengthValue.text())) + else: + # f is None + self.xValue.setFocus() + self.xValue.setSelection(0,self.number_length(self.xValue.text())) def number_length(self, str): nl = 0 @@ -1298,7 +1302,7 @@ class DraftToolBar: self.yValue.setEnabled(False) self.zValue.setEnabled(False) self.angleValue.setEnabled(False) - self.setFocus() + self.setFocus("x") elif (mask == "y") or (self.mask == "y"): self.xValue.setEnabled(False) self.yValue.setEnabled(True)