summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSophia Pearson <codergal89@gmail.com>2022-05-27 18:14:01 +0200
committerSophia Pearson <codergal89@gmail.com>2022-05-27 18:29:06 +0200
commit14a74e92b7aee30ec3911c0d2f5291bf70dc33b6 (patch)
treef2dd23dab0bc0fab97ced5daf4a641553123ef75
parent778960415464079277b31365f0465159585be018 (diff)
downloadtexty-14a74e92b7aee30ec3911c0d2f5291bf70dc33b6.tar.xz
texty-14a74e92b7aee30ec3911c0d2f5291bf70dc33b6.zip
inputcontainer: grab focus based on visibility
-rw-r--r--Scenes/InputContainer.tscn1
-rw-r--r--Scripts/InputContainer.cs13
-rw-r--r--Tests/ComponentTests/test_InputContainer.gd1
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()