mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-01-23 21:30:41 +00:00
Enable text input on video initialization without popping up an on-screen keyboard
Fixes https://github.com/libsdl-org/SDL/issues/8561
(cherry picked from commit 4ff3b28273)
This commit is contained in:
@@ -566,16 +566,21 @@ int SDL_VideoInit(const char *driver_name)
|
||||
SDL_DisableScreenSaver();
|
||||
}
|
||||
|
||||
/* If we don't use a screen keyboard, turn on text input by default,
|
||||
otherwise programs that expect to get text events without enabling
|
||||
UNICODE input won't get any events.
|
||||
|
||||
Actually, come to think of it, you needed to call SDL_EnableUNICODE(1)
|
||||
in SDL 1.2 before you got text input events. Hmm...
|
||||
*/
|
||||
if (!SDL_HasScreenKeyboardSupport()) {
|
||||
#if !defined(SDL_VIDEO_DRIVER_N3DS)
|
||||
{
|
||||
/* In the initial state we don't want to pop up an on-screen keyboard,
|
||||
* but we do want to allow text input from other mechanisms.
|
||||
*/
|
||||
const char *hint = SDL_GetHint(SDL_HINT_ENABLE_SCREEN_KEYBOARD);
|
||||
if (!hint) {
|
||||
SDL_SetHint(SDL_HINT_ENABLE_SCREEN_KEYBOARD, "0");
|
||||
}
|
||||
SDL_StartTextInput();
|
||||
if (!hint) {
|
||||
SDL_SetHint(SDL_HINT_ENABLE_SCREEN_KEYBOARD, NULL);
|
||||
}
|
||||
}
|
||||
#endif /* !SDL_VIDEO_DRIVER_N3DS */
|
||||
|
||||
SDL_PostInitMouse();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user