From b21e43701192c120ddc00af108b596f75d1475e6 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 24 Aug 2021 21:59:00 -0400 Subject: [PATCH] v1.0.1: pressing enter now confirms single line text input --- .../main/java/com/watabou/noosa/TextInput.java | 15 +++++++++++++++ .../shatteredpixeldungeon/ui/WndTextInput.java | 9 ++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/SPD-classes/src/main/java/com/watabou/noosa/TextInput.java b/SPD-classes/src/main/java/com/watabou/noosa/TextInput.java index cefd356b3..dd34d9c2a 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/TextInput.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/TextInput.java @@ -71,11 +71,26 @@ public class TextInput extends Component { } } }); + + if (!multiline){ + textField.setTextFieldListener(new TextField.TextFieldListener(){ + public void keyTyped (TextField textField, char c){ + if (c == '\r' || c == '\n'){ + enterPressed(); + } + } + }); + } + container.setActor(textField); stage.setKeyboardFocus(textField); Gdx.input.setOnscreenKeyboardVisible(true); } + public void enterPressed(){ + //do nothing by default + }; + public void setText(String text){ textField.setText(text); textField.setCursorPosition(textField.getText().length()); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/WndTextInput.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/WndTextInput.java index 924ae5e0c..a0dbc8a33 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/WndTextInput.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/WndTextInput.java @@ -39,7 +39,14 @@ public class WndTextInput extends Window { add(txtTitle); int textSize = (int)PixelScene.uiCamera.zoom * (multiLine ? 6 : 9); - TextInput textBox = new TextInput(Chrome.get(Chrome.Type.TOAST_WHITE), multiLine, textSize); + final TextInput textBox = new TextInput(Chrome.get(Chrome.Type.TOAST_WHITE), multiLine, textSize){ + @Override + public void enterPressed() { + //triggers positive action on enter pressed, only with non-multiline though. + onSelect(true, getText()); + hide(); + } + }; if (initialValue != null) textBox.setText(initialValue); textBox.setMaxLength(maxLength);