diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 4536b3a560..bc5fd43d51 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -140,6 +140,12 @@ class DraftTaskPanel: FreeCADGui.ActiveDocument.resetEdit() return True def reject(self): + # https://github.com/FreeCAD/FreeCAD/issues/17027 + # Function can be called multiple times if Esc is pressed during mouse + # move. We need to prevent multiple calls to draftToolBar.escape(): + if getattr(FreeCAD, "activeDraftCommand", None) is None: + return + FreeCAD.activeDraftCommand = None FreeCADGui.draftToolBar.isTaskOn = False FreeCADGui.draftToolBar.escape() if FreeCADGui.ActiveDocument: