diff --git a/SPD-classes/src/main/java/com/watabou/input/PointerEvent.java b/SPD-classes/src/main/java/com/watabou/input/PointerEvent.java index a5141022d..5d7600a78 100644 --- a/SPD-classes/src/main/java/com/watabou/input/PointerEvent.java +++ b/SPD-classes/src/main/java/com/watabou/input/PointerEvent.java @@ -183,7 +183,7 @@ public class PointerEvent { } if (clearKeyboardThisPress){ //most press events should clear the keyboard - Game.platform.setOnscreenKeyboardVisible(false); + Game.platform.setOnscreenKeyboardVisible(false, false); } } pointerEvents.clear(); 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 7cec28c05..464876c8e 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/TextInput.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/TextInput.java @@ -141,13 +141,13 @@ public class TextInput extends Component { textField.setOnscreenKeyboard(new TextField.OnscreenKeyboard() { @Override public void show(boolean visible) { - Game.platform.setOnscreenKeyboardVisible(visible); + Game.platform.setOnscreenKeyboardVisible(visible, multiline); } }); container.setActor(textField); stage.setKeyboardFocus(textField); - Game.platform.setOnscreenKeyboardVisible(true); + Game.platform.setOnscreenKeyboardVisible(true, multiline); } public void enterPressed(){ @@ -258,7 +258,7 @@ public class TextInput extends Component { stage.dispose(); skin.dispose(); Game.inputHandler.removeInputProcessor(stage); - Game.platform.setOnscreenKeyboardVisible(false); + Game.platform.setOnscreenKeyboardVisible(false, false); if (!DeviceCompat.isDesktop()) Game.platform.updateSystemUI(); } } diff --git a/SPD-classes/src/main/java/com/watabou/utils/PlatformSupport.java b/SPD-classes/src/main/java/com/watabou/utils/PlatformSupport.java index 98ea9db51..d0921532e 100644 --- a/SPD-classes/src/main/java/com/watabou/utils/PlatformSupport.java +++ b/SPD-classes/src/main/java/com/watabou/utils/PlatformSupport.java @@ -22,6 +22,7 @@ package com.watabou.utils; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.PixmapPacker; @@ -61,8 +62,9 @@ public abstract class PlatformSupport { return Gdx.net.openURI( uri ); } - public void setOnscreenKeyboardVisible(boolean value){ - Gdx.input.setOnscreenKeyboardVisible(value); + public void setOnscreenKeyboardVisible(boolean value, boolean multiline){ + //by default ignore multiline + Gdx.input.setOnscreenKeyboardVisible(value, Input.OnscreenKeyboardType.Default); } //TODO should consider spinning this into its own class, rather than platform support getting ever bigger diff --git a/ios/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ios/IOSPlatformSupport.java b/ios/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ios/IOSPlatformSupport.java index d714302a3..ccc3888f5 100644 --- a/ios/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ios/IOSPlatformSupport.java +++ b/ios/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ios/IOSPlatformSupport.java @@ -129,6 +129,15 @@ public class IOSPlatformSupport extends PlatformSupport { OALSimpleAudio.sharedInstance().setHonorSilentSwitch(value); } + public void setOnscreenKeyboardVisible(boolean value, boolean multiline){ + if (multiline){ + //iOS needs 'email' input type to display enter/return key for multiline =S + Gdx.input.setOnscreenKeyboardVisible(value, Input.OnscreenKeyboardType.Email); + } else { + super.setOnscreenKeyboardVisible(value, multiline); + } + } + /* FONT SUPPORT */ //custom pixel font, for use with Latin and Cyrillic languages