Merge branch 'Zode-scenetree-scroll'
This commit is contained in:
@@ -73,6 +73,11 @@ namespace FlaxEditor.GUI.Tree
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public bool DrawRootTreeLine = true;
|
public bool DrawRootTreeLine = true;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Occurs when the deferred layout operation was performed.
|
||||||
|
/// </summary>
|
||||||
|
public event Action AfterDeferredLayout;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the margin for the child tree nodes.
|
/// Gets or sets the margin for the child tree nodes.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -375,6 +380,7 @@ namespace FlaxEditor.GUI.Tree
|
|||||||
if (_deferLayoutUpdate)
|
if (_deferLayoutUpdate)
|
||||||
{
|
{
|
||||||
base.PerformLayout();
|
base.PerformLayout();
|
||||||
|
AfterDeferredLayout?.Invoke();
|
||||||
_deferLayoutUpdate = false;
|
_deferLayoutUpdate = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ namespace FlaxEditor.Windows
|
|||||||
private DragScriptItems _dragScriptItems;
|
private DragScriptItems _dragScriptItems;
|
||||||
private DragHandlers _dragHandlers;
|
private DragHandlers _dragHandlers;
|
||||||
private bool _isDropping = false;
|
private bool _isDropping = false;
|
||||||
|
private bool _forceScrollNodeToView = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Scene tree panel.
|
/// Scene tree panel.
|
||||||
@@ -91,6 +92,15 @@ namespace FlaxEditor.Windows
|
|||||||
_tree.SelectedChanged += Tree_OnSelectedChanged;
|
_tree.SelectedChanged += Tree_OnSelectedChanged;
|
||||||
_tree.RightClick += OnTreeRightClick;
|
_tree.RightClick += OnTreeRightClick;
|
||||||
_tree.Parent = _sceneTreePanel;
|
_tree.Parent = _sceneTreePanel;
|
||||||
|
_tree.AfterDeferredLayout += () =>
|
||||||
|
{
|
||||||
|
if (_forceScrollNodeToView)
|
||||||
|
{
|
||||||
|
_forceScrollNodeToView = false;
|
||||||
|
ScrollToSelectedNode();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
headerPanel.Parent = this;
|
headerPanel.Parent = this;
|
||||||
|
|
||||||
// Setup input actions
|
// Setup input actions
|
||||||
@@ -142,6 +152,16 @@ namespace FlaxEditor.Windows
|
|||||||
root.TreeNode.UpdateFilter(query);
|
root.TreeNode.UpdateFilter(query);
|
||||||
|
|
||||||
_tree.UnlockChildrenRecursive();
|
_tree.UnlockChildrenRecursive();
|
||||||
|
|
||||||
|
// When keep the selected nodes in a view
|
||||||
|
var nodeSelection = _tree.Selection;
|
||||||
|
if (nodeSelection.Count != 0)
|
||||||
|
{
|
||||||
|
var node = nodeSelection[nodeSelection.Count - 1];
|
||||||
|
node.Expand(true);
|
||||||
|
_forceScrollNodeToView = true;
|
||||||
|
}
|
||||||
|
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user