diff --git a/Scripts/Editor/NodeEditor.cs b/Scripts/Editor/NodeEditor.cs
index e03973a..b728aff 100644
--- a/Scripts/Editor/NodeEditor.cs
+++ b/Scripts/Editor/NodeEditor.cs
@@ -210,6 +210,9 @@ namespace XNodeEditor
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target));
}
+ /// Called when entering into rename mode for this node.
+ public virtual void OnRenameActive() {}
+
/// Called after this node's name has changed.
public virtual void OnRename() {}
diff --git a/Scripts/Editor/NodeGroupEditor.cs b/Scripts/Editor/NodeGroupEditor.cs
index 7447e63..669d179 100644
--- a/Scripts/Editor/NodeGroupEditor.cs
+++ b/Scripts/Editor/NodeGroupEditor.cs
@@ -13,6 +13,12 @@ namespace XNodeEditor.NodeGroups
private NodeGroup _group;
private bool _isDragging;
private Vector2 _size;
+ private float _currentHeight;
+
+ public override void OnCreate()
+ {
+ _currentHeight = group.height;
+ }
public override void OnHeaderGUI()
{
@@ -29,6 +35,7 @@ namespace XNodeEditor.NodeGroups
{
group.width = Mathf.Max(200, (int)e.mousePosition.x + 16);
group.height = Mathf.Max(100, (int)e.mousePosition.y - 34);
+ _currentHeight = group.height;
NodeEditorWindow.current.Repaint();
}
@@ -132,8 +139,20 @@ namespace XNodeEditor.NodeGroups
break;
}
- // Control height of node
- GUILayout.Space(group.height);
+ GUILayout.Space(_currentHeight);
+ }
+
+ public override void OnRenameActive()
+ {
+ _currentHeight += 30 - NodeEditorResources.styles.nodeHeaderRename.fixedHeight -
+ NodeEditorResources.styles.nodeHeaderRename.margin.top +
+ NodeEditorResources.styles.nodeHeaderRename.margin.bottom / 2;
+ }
+
+
+ public override void OnRename()
+ {
+ _currentHeight = group.height;
}
public override int GetWidth()
diff --git a/Scripts/Editor/RenameTextField.cs b/Scripts/Editor/RenameTextField.cs
index 1a0427b..11e2217 100644
--- a/Scripts/Editor/RenameTextField.cs
+++ b/Scripts/Editor/RenameTextField.cs
@@ -38,12 +38,15 @@ namespace XNodeEditor
input = GUILayout.TextField(input, NodeEditorResources.styles.nodeHeaderRename);
EditorGUI.FocusTextInControl(inputControlName);
- // Fixes textfield not being fully selected on multiple consecutive rename activates.
if (firstFrame)
{
+ // Fixes textfield not being fully selected on multiple consecutive rename activates.
TextEditor textEditor =
(TextEditor)GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl);
textEditor.SelectAll();
+
+ NodeEditor.GetEditor((Node)target, NodeEditorWindow.current).OnRenameActive();
+
firstFrame = false;
}