mirror of
				https://github.com/encounter/SDL.git
				synced 2025-10-25 19:20:25 +00:00 
			
		
		
		
	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); | ||||||
|     SDL_StopTextInput(); |     if (SDL_GetHintBoolean(SDL_HINT_RETURN_KEY_HIDES_IME, SDL_FALSE)) { | ||||||
|  |          SDL_StopTextInput(); | ||||||
|  |     } | ||||||
|     return YES; |     return YES; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user