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 4ff3b28273a9b64892620435231539a1d2c98301)
This commit is contained in:
@@ -566,16 +566,21 @@ int SDL_VideoInit(const char *driver_name)
|
|||||||
SDL_DisableScreenSaver();
|
SDL_DisableScreenSaver();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If we don't use a screen keyboard, turn on text input by default,
|
#if !defined(SDL_VIDEO_DRIVER_N3DS)
|
||||||
otherwise programs that expect to get text events without enabling
|
{
|
||||||
UNICODE input won't get any events.
|
/* 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.
|
||||||
Actually, come to think of it, you needed to call SDL_EnableUNICODE(1)
|
*/
|
||||||
in SDL 1.2 before you got text input events. Hmm...
|
const char *hint = SDL_GetHint(SDL_HINT_ENABLE_SCREEN_KEYBOARD);
|
||||||
*/
|
if (!hint) {
|
||||||
if (!SDL_HasScreenKeyboardSupport()) {
|
SDL_SetHint(SDL_HINT_ENABLE_SCREEN_KEYBOARD, "0");
|
||||||
|
}
|
||||||
SDL_StartTextInput();
|
SDL_StartTextInput();
|
||||||
|
if (!hint) {
|
||||||
|
SDL_SetHint(SDL_HINT_ENABLE_SCREEN_KEYBOARD, NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* !SDL_VIDEO_DRIVER_N3DS */
|
||||||
|
|
||||||
SDL_PostInitMouse();
|
SDL_PostInitMouse();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user