From 8375a7edf848d237bfd50b561d635d432c9b7749 Mon Sep 17 00:00:00 2001 From: pelya Date: Sun, 2 Apr 2017 01:58:06 +0300 Subject: [PATCH] Revert "Revert "Revert "Async Android text input""" This reverts commit 181b5f363b3cd745b72c65776964fa85adefcd35. --- src/misc_gui.cpp | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index c63194af89..e3191fe212 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -46,8 +46,6 @@ enum OskActivation { OSKA_IMMEDIATELY, ///< Focusing click already opens OSK. }; -static char _android_text_input[512]; - static const NWidgetPart _nested_land_info_widgets[] = { NWidget(NWID_HORIZONTAL), @@ -775,14 +773,6 @@ void QueryString::HandleEditBox(Window *w, int wid) /* For the OSK also invalidate the parent window */ if (w->window_class == WC_OSK) w->InvalidateData(); } -#ifdef __ANDROID__ - if (SDL_IsScreenKeyboardShown(NULL)) { - if (SDL_ANDROID_GetScreenKeyboardTextInputAsync(_android_text_input, sizeof(_android_text_input)) == SDL_ANDROID_TEXTINPUT_ASYNC_FINISHED) { - this->text.Assign(_android_text_input); - w->OnEditboxChanged(wid); - } - } -#endif } void QueryString::DrawEditBox(const Window *w, int wid) const @@ -964,12 +954,15 @@ void QueryString::ClickEditBox(Window *w, Point pt, int wid, int click_count, bo ShowOnScreenKeyboard(w, wid); } #ifdef __ANDROID__ - strecpy(_android_text_input, this->text.buf, lastof(_android_text_input)); + char text[512]; + strecpy(text, this->text.buf, lastof(text)); this->text.DeleteAll(); - if (SDL_ANDROID_GetScreenKeyboardTextInputAsync(_android_text_input, sizeof(_android_text_input)) == SDL_ANDROID_TEXTINPUT_ASYNC_FINISHED) { - this->text.Assign(_android_text_input); - w->OnEditboxChanged(wid); - } + SDL_ANDROID_ToggleScreenKeyboardTextInput(text); // Invoke Android built-in screen keyboard, this will not block + /* + SDL_ANDROID_GetScreenKeyboardTextInput(text, sizeof(text) - 1); // Invoke Android built-in screen keyboard, this will block + this->text.Assign(text); + w->OnEditboxChanged(wid); + */ #endif }