diff options
| -rw-r--r-- | Scenes/InputContainer.tscn | 1 | ||||
| -rw-r--r-- | Scripts/InputContainer.cs | 13 | ||||
| -rw-r--r-- | Tests/ComponentTests/test_InputContainer.gd | 1 |
3 files changed, 14 insertions, 1 deletions
diff --git a/Scenes/InputContainer.tscn b/Scenes/InputContainer.tscn index 364d800..ad9a88e 100644 --- a/Scenes/InputContainer.tscn +++ b/Scenes/InputContainer.tscn @@ -32,6 +32,7 @@ margin_bottom = 41.0 shortcut = SubResource( 4 ) text = "Submit" +[connection signal="visibility_changed" from="." to="." method="OnVisibilityChanged"] [connection signal="text_changed" from="InputField" to="." method="OnInputChanged"] [connection signal="text_entered" from="InputField" to="." method="OnInputSubmitted"] [connection signal="pressed" from="SubmitButton" to="." method="OnInputSubmitted"] diff --git a/Scripts/InputContainer.cs b/Scripts/InputContainer.cs index 485086e..8e8ef90 100644 --- a/Scripts/InputContainer.cs +++ b/Scripts/InputContainer.cs @@ -15,7 +15,6 @@ namespace Texty.Scripts InputField = GetNode<LineEdit>(nameof(InputField)); SubmitButton = GetNode<Button>(nameof(SubmitButton)); - InputField.GrabFocus(); SubmitButton.Disabled = InputField.Text.Empty(); } @@ -34,6 +33,18 @@ namespace Texty.Scripts SubmitText(InputField.Text); } + public void OnVisibilityChanged() + { + if (Visible) + { + InputField.GrabFocus(); + } + else + { + InputField.ReleaseFocus(); + } + } + private void SubmitText(string newText) { if (newText.Empty()) return; diff --git a/Tests/ComponentTests/test_InputContainer.gd b/Tests/ComponentTests/test_InputContainer.gd index 3fdaa7b..993436e 100644 --- a/Tests/ComponentTests/test_InputContainer.gd +++ b/Tests/ComponentTests/test_InputContainer.gd @@ -29,6 +29,7 @@ func _set_input_text(text): func before_each(): _instance = add_child_autofree(Scene.instance()) + yield(yield_frames(1), YIELD) func after_each(): _sender.release_all() |
