From 57aace26d330d7e5cf93046b95ff9751e2575044 Mon Sep 17 00:00:00 2001 From: Sinai Date: Sat, 8 May 2021 06:18:28 +1000 Subject: [PATCH] Refresh for child count or name changes in TransformTree --- src/UI/Widgets/TransformTree/CachedTransform.cs | 17 ++++++++++++++--- src/UI/Widgets/TransformTree/TransformTree.cs | 3 ++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/UI/Widgets/TransformTree/CachedTransform.cs b/src/UI/Widgets/TransformTree/CachedTransform.cs index 21d1c91..01ca85c 100644 --- a/src/UI/Widgets/TransformTree/CachedTransform.cs +++ b/src/UI/Widgets/TransformTree/CachedTransform.cs @@ -14,6 +14,8 @@ namespace UnityExplorer.UI.Widgets public CachedTransform Parent { get; internal set; } public int Depth { get; internal set; } + public int ChildCount { get; internal set; } + public string Name { get; internal set; } public bool Expanded => Tree.IsCellExpanded(InstanceID); @@ -26,10 +28,19 @@ namespace UnityExplorer.UI.Widgets Update(transform, depth); } - public void Update(Transform transform, int depth) + public bool Update(Transform transform, int depth) { - Value = transform; - Depth = depth; + bool ret = false; + + if (Value != transform || depth != Depth || ChildCount != transform.childCount || Name != transform.name) + { + Value = transform; + Depth = depth; + ChildCount = transform.childCount; + Name = transform.name; + ret = true; + } + return ret; } } } diff --git a/src/UI/Widgets/TransformTree/TransformTree.cs b/src/UI/Widgets/TransformTree/TransformTree.cs index d9c9730..62c3e96 100644 --- a/src/UI/Widgets/TransformTree/TransformTree.cs +++ b/src/UI/Widgets/TransformTree/TransformTree.cs @@ -139,7 +139,8 @@ namespace UnityExplorer.UI.Widgets if (displayedObjects.Contains(instanceID)) { cached = (CachedTransform)displayedObjects[(object)instanceID]; - cached.Update(transform, depth); + if (cached.Update(transform, depth)) + needRefresh = true; } else {