diff --git a/Source/Editor/GUI/Tree/Tree.cs b/Source/Editor/GUI/Tree/Tree.cs index e36f0ccd5..3e1453f03 100644 --- a/Source/Editor/GUI/Tree/Tree.cs +++ b/Source/Editor/GUI/Tree/Tree.cs @@ -73,6 +73,11 @@ namespace FlaxEditor.GUI.Tree /// public bool DrawRootTreeLine = true; + /// + /// Occurs when the defered layouting happens + /// + public event Action OnDeferedLayout; + /// /// Gets or sets the margin for the child tree nodes. /// @@ -375,6 +380,7 @@ namespace FlaxEditor.GUI.Tree if (_deferLayoutUpdate) { base.PerformLayout(); + OnDeferedLayout?.Invoke(); _deferLayoutUpdate = false; } diff --git a/Source/Editor/Windows/SceneTreeWindow.cs b/Source/Editor/Windows/SceneTreeWindow.cs index 20cfa3584..9175a660b 100644 --- a/Source/Editor/Windows/SceneTreeWindow.cs +++ b/Source/Editor/Windows/SceneTreeWindow.cs @@ -92,6 +92,13 @@ namespace FlaxEditor.Windows _tree.SelectedChanged += Tree_OnSelectedChanged; _tree.RightClick += OnTreeRightClick; _tree.Parent = _sceneTreePanel; + _tree.OnDeferedLayout += () => { + if(_tree.Selection.Count != 0 && _forceScrollNodeToView) + { + _forceScrollNodeToView = false; + ScrollToSelectedNode(); + } + }; headerPanel.Parent = this; // Setup input actions @@ -156,18 +163,6 @@ namespace FlaxEditor.Windows PerformLayout(); } - /// - public override void Update(float deltaTime) - { - base.Update(deltaTime); - - if(_tree.Selection.Count != 0 && _forceScrollNodeToView) - { - _forceScrollNodeToView = false; - ScrollToSelectedNode(); - } - } - private void Spawn(Type type) { // Create actor