From dcffb422e57b6f3488bb7f04b4da113c2488da0e Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Thu, 15 Aug 2024 08:37:00 -0500 Subject: [PATCH] Change actor scroll cache to use guid and float instead of strings, remove onactor removed code to keep values after undo. --- Source/Editor/Windows/PropertiesWindow.cs | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/Source/Editor/Windows/PropertiesWindow.cs b/Source/Editor/Windows/PropertiesWindow.cs index 23aedf46a..423d3af18 100644 --- a/Source/Editor/Windows/PropertiesWindow.cs +++ b/Source/Editor/Windows/PropertiesWindow.cs @@ -21,7 +21,7 @@ namespace FlaxEditor.Windows { private IEnumerable undoRecordObjects; - private readonly Dictionary _actorScrollValues = new Dictionary(); + private readonly Dictionary _actorScrollValues = new Dictionary(); /// public override bool UseLayoutData => true; @@ -63,7 +63,6 @@ namespace FlaxEditor.Windows VScrollBar.ValueChanged += OnScrollValueChanged; Editor.SceneEditing.SelectionChanged += OnSelectionChanged; - Editor.Scene.ActorRemoved += OnActorRemoved; } /// @@ -77,11 +76,6 @@ namespace FlaxEditor.Windows _actorScrollValues.Clear(); } - private void OnActorRemoved(ActorNode node) - { - _actorScrollValues.Remove(node.ID.ToString()); - } - private void OnScrollValueChanged() { if (Editor.SceneEditing.SelectionCount > 1) @@ -100,7 +94,7 @@ namespace FlaxEditor.Windows } } - _actorScrollValues[Editor.SceneEditing.Selection[0].ID.ToString()] = VScrollBar.TargetValue.ToString("0"); + _actorScrollValues[Editor.SceneEditing.Selection[0].ID] = VScrollBar.TargetValue; } private IEnumerable GetUndoObjects(CustomEditorPresenter customEditorPresenter) @@ -121,12 +115,7 @@ namespace FlaxEditor.Windows // Set scroll value of window if it exists if (Editor.SceneEditing.SelectionCount == 1) - { - if (_actorScrollValues.TryGetValue(Editor.SceneEditing.Selection[0].ID.ToString(), out var outValue)) - VScrollBar.TargetValue = Convert.ToSingle(outValue); - else - VScrollBar.TargetValue = 0; - } + VScrollBar.TargetValue = _actorScrollValues.GetValueOrDefault(Editor.SceneEditing.Selection[0].ID, 0); } ///