mirror of https://github.com/encounter/SDL.git
Fixed bug 4004 - iOS: don't hide keyboard on RETURN
Dominik Reichardt As discussed in 2012 the iOS onscreen keyboard hides when you hit RETURN (see https://discourse.libsdl.org/t/on-screen-keyboard-change/19216). IMO this is a bad idea to not be able to influence this behavior and just recently this was fixed for Android by adding the hint SDL_HINT_ANDROID_RETURN_HIDES_IME in changeset 11768 6ce3bb5e38a5.
This commit is contained in:
parent
fee2469c65
commit
b92e2f027a
|
@ -1508,7 +1508,7 @@ class SDLInputConnection extends BaseInputConnection {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (event.getKeyCode() == 66) {
|
if (event.getKeyCode() == 66) {
|
||||||
String imeHide = SDLActivity.nativeGetHint("SDL_ANDROID_RETURN_HIDES_IME");
|
String imeHide = SDLActivity.nativeGetHint("SDL_RETURN_KEY_HIDES_IME");
|
||||||
if ((imeHide != null) && imeHide.equals("1")) {
|
if ((imeHide != null) && imeHide.equals("1")) {
|
||||||
Context c = SDL.getContext();
|
Context c = SDL.getContext();
|
||||||
if (c instanceof SDLActivity) {
|
if (c instanceof SDLActivity) {
|
||||||
|
|
|
@ -721,17 +721,16 @@ extern "C" {
|
||||||
#define SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH "SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH"
|
#define SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH "SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief A variable to control whether the return key on the soft keyboard should hide the
|
* \brief A variable to control whether the return key on the soft keyboard
|
||||||
* soft keyboard on Android.
|
* should hide the soft keyboard on Android and iOS.
|
||||||
*
|
*
|
||||||
* The variable can be set to the following values:
|
* The variable can be set to the following values:
|
||||||
* "0" - The return key will be handled as a key event. This is the behaviour of
|
* "0" - The return key will be handled as a key event. This is the behaviour of SDL <= 2.0.3. (default)
|
||||||
* SDL <= 2.0.3. (default)
|
|
||||||
* "1" - The return key will hide the keyboard.
|
* "1" - The return key will hide the keyboard.
|
||||||
*
|
*
|
||||||
* The value of this hint is used at runtime, so it can be changed at any time.
|
* The value of this hint is used at runtime, so it can be changed at any time.
|
||||||
*/
|
*/
|
||||||
#define SDL_HINT_ANDROID_RETURN_HIDES_IME "SDL_ANDROID_RETURN_HIDES_IME"
|
#define SDL_HINT_RETURN_KEY_HIDES_IME "SDL_RETURN_KEY_HIDES_IME"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief override the binding element for keyboard inputs for Emscripten builds
|
* \brief override the binding element for keyboard inputs for Emscripten builds
|
||||||
|
|
|
@ -387,7 +387,9 @@ SDL_AppleTVControllerUIHintChanged(void *userdata, const char *name, const char
|
||||||
{
|
{
|
||||||
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RETURN);
|
SDL_SendKeyboardKey(SDL_PRESSED, SDL_SCANCODE_RETURN);
|
||||||
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_RETURN);
|
SDL_SendKeyboardKey(SDL_RELEASED, SDL_SCANCODE_RETURN);
|
||||||
|
if (SDL_GetHintBoolean(SDL_HINT_RETURN_KEY_HIDES_IME, SDL_FALSE)) {
|
||||||
SDL_StopTextInput();
|
SDL_StopTextInput();
|
||||||
|
}
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue