Prevent duplicate calls to start/stop text input

This commit is contained in:
Sam Lantinga
2024-06-27 10:49:24 -07:00
parent 3609b15920
commit b7748c1513

View File

@@ -5032,6 +5032,7 @@ int SDL_StartTextInput(SDL_Window *window)
} }
} }
if (!window->text_input_active) {
/* Finally start the text input system */ /* Finally start the text input system */
if (_this->StartTextInput) { if (_this->StartTextInput) {
if (_this->StartTextInput(_this, window) < 0) { if (_this->StartTextInput(_this, window) < 0) {
@@ -5039,6 +5040,7 @@ int SDL_StartTextInput(SDL_Window *window)
} }
} }
window->text_input_active = SDL_TRUE; window->text_input_active = SDL_TRUE;
}
return 0; return 0;
} }
@@ -5053,11 +5055,13 @@ int SDL_StopTextInput(SDL_Window *window)
{ {
CHECK_WINDOW_MAGIC(window, -1); CHECK_WINDOW_MAGIC(window, -1);
if (window->text_input_active) {
/* Stop the text input system */ /* Stop the text input system */
if (_this->StopTextInput) { if (_this->StopTextInput) {
_this->StopTextInput(_this, window); _this->StopTextInput(_this, window);
} }
window->text_input_active = SDL_FALSE; window->text_input_active = SDL_FALSE;
}
/* Hide the on-screen keyboard, if desired */ /* Hide the on-screen keyboard, if desired */
const char *hint = SDL_GetHint(SDL_HINT_ENABLE_SCREEN_KEYBOARD); const char *hint = SDL_GetHint(SDL_HINT_ENABLE_SCREEN_KEYBOARD);