From c10ff837e2c1a99bbd996c4bb939c72b336f5c14 Mon Sep 17 00:00:00 2001
From: "Zheng, Lei" <realthunder.dev@gmail.com>
Date: Wed, 29 May 2019 13:18:03 +0800
Subject: [PATCH] assembly: fix auto recompute on moving

---
 assembly.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/assembly.py b/assembly.py
index 38c9f54..9abfac9 100644
--- a/assembly.py
+++ b/assembly.py
@@ -675,7 +675,7 @@ class AsmElement(AsmBase):
     def getSubName(self):
         link = self.Object.LinkedObject
         if not link:
-            raise RuntimeError('Invalid element link "{}"'.format(
+            raise RuntimeError('Invalid element "{}"'.format(
                 objName(self.Object)))
         if not isinstance(link,tuple):
             return link.Name + '.'
@@ -3996,10 +3996,12 @@ class ViewProviderAssembly(ViewProviderAsmGroup):
             return True
 
     def onDragEnd(self):
-        self.__class__._Busy = False
-        if getattr(self,'_movingPart',None):
-            FreeCAD.closeActiveTransaction()
-            return True
+        try:
+            if getattr(self,'_movingPart',None):
+                FreeCAD.closeActiveTransaction()
+                return True
+        finally:
+            self.__class__._Busy = False
 
     def unsetEdit(self,_vobj,_mode):
         self._movingPart = None