Fix regression in renaming textbox placement of newly added actor to prefab
This commit is contained in:
@@ -130,6 +130,10 @@ namespace FlaxEditor.GUI
|
|||||||
/// <returns>Created popup.</returns>
|
/// <returns>Created popup.</returns>
|
||||||
public static RenamePopup Show(Control control, Rectangle area, string value, bool isMultiline)
|
public static RenamePopup Show(Control control, Rectangle area, string value, bool isMultiline)
|
||||||
{
|
{
|
||||||
|
// hardcoded flushing layout for tree controls
|
||||||
|
if (control is Tree.TreeNode treeNode && treeNode.ParentTree != null)
|
||||||
|
treeNode.ParentTree.FlushPendingPerformLayout();
|
||||||
|
|
||||||
// Calculate the control size in the window space to handle scaled controls
|
// Calculate the control size in the window space to handle scaled controls
|
||||||
var upperLeft = control.PointToWindow(area.UpperLeft);
|
var upperLeft = control.PointToWindow(area.UpperLeft);
|
||||||
var bottomRight = control.PointToWindow(area.BottomRight);
|
var bottomRight = control.PointToWindow(area.BottomRight);
|
||||||
|
|||||||
@@ -364,6 +364,19 @@ namespace FlaxEditor.GUI.Tree
|
|||||||
BulkSelectUpdateExpanded(false);
|
BulkSelectUpdateExpanded(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Flushes any pending layout perming action that has been delayed until next update to optimize performance of the complex tree hierarchy.
|
||||||
|
/// </summary>
|
||||||
|
public void FlushPendingPerformLayout()
|
||||||
|
{
|
||||||
|
if (_deferLayoutUpdate)
|
||||||
|
{
|
||||||
|
base.PerformLayout();
|
||||||
|
AfterDeferredLayout?.Invoke();
|
||||||
|
_deferLayoutUpdate = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override void PerformLayout(bool force = false)
|
public override void PerformLayout(bool force = false)
|
||||||
{
|
{
|
||||||
@@ -378,11 +391,7 @@ namespace FlaxEditor.GUI.Tree
|
|||||||
public override void Update(float deltaTime)
|
public override void Update(float deltaTime)
|
||||||
{
|
{
|
||||||
if (_deferLayoutUpdate)
|
if (_deferLayoutUpdate)
|
||||||
{
|
FlushPendingPerformLayout();
|
||||||
base.PerformLayout();
|
|
||||||
AfterDeferredLayout?.Invoke();
|
|
||||||
_deferLayoutUpdate = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var node = SelectedNode;
|
var node = SelectedNode;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user