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