From c8cf0a1e32246aa5cedc7f7fa940d83970c413a6 Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Sat, 4 Jul 2020 21:24:23 +0800 Subject: [PATCH] gui: fix infinite recursion triggered by auto element visibility --- freecad/asm3/gui.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/freecad/asm3/gui.py b/freecad/asm3/gui.py index a89e1e8..169683a 100644 --- a/freecad/asm3/gui.py +++ b/freecad/asm3/gui.py @@ -38,9 +38,13 @@ class SelectionObserver: res = sobj.Proxy.parent.Object.isElementVisible(sobj.Name) if res and vis: return False + if not res and not vis: + return; sobj.Proxy.parent.Object.setElementVisible(sobj.Name,vis) elif isTypeOf(sobj,AsmConstraint): vis = [vis] * len(flattenGroup(sobj)) + if sobj.VisibilityList == tuple(vis): + return sobj.setPropertyStatus('VisibilityList','-Immutable') sobj.VisibilityList = vis sobj.setPropertyStatus('VisibilityList','Immutable')