Fixed Android text input
This commit is contained in:
@@ -30,6 +30,10 @@
|
|||||||
|
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
#include <SDL_screenkeyboard.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/** Method to open the OSK. */
|
/** Method to open the OSK. */
|
||||||
enum OskActivation {
|
enum OskActivation {
|
||||||
OSKA_DISABLED, ///< The OSK shall not be activated at all.
|
OSKA_DISABLED, ///< The OSK shall not be activated at all.
|
||||||
@@ -924,6 +928,15 @@ void QueryString::ClickEditBox(Window *w, Point pt, int wid, int click_count, bo
|
|||||||
/* Open the OSK window */
|
/* Open the OSK window */
|
||||||
ShowOnScreenKeyboard(w, wid);
|
ShowOnScreenKeyboard(w, wid);
|
||||||
}
|
}
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
char text[512];
|
||||||
|
strncpy(text, this->text.buf, sizeof(text) - 1);
|
||||||
|
text[sizeof(text) - 1] = 0;
|
||||||
|
this->text.DeleteAll();
|
||||||
|
SDL_ANDROID_GetScreenKeyboardTextInput(text, sizeof(text) - 1); /* Invoke Android built-in screen keyboard */
|
||||||
|
this->text.Assign(text);
|
||||||
|
w->OnEditboxChanged(wid);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Class for the string query window. */
|
/** Class for the string query window. */
|
||||||
|
|||||||
@@ -22,9 +22,6 @@
|
|||||||
|
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
#ifdef __ANDROID__
|
|
||||||
#include <SDL_screenkeyboard.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char _keyboard_opt[2][OSK_KEYBOARD_ENTRIES * 4 + 1];
|
char _keyboard_opt[2][OSK_KEYBOARD_ENTRIES * 4 + 1];
|
||||||
static WChar _keyboard[2][OSK_KEYBOARD_ENTRIES];
|
static WChar _keyboard[2][OSK_KEYBOARD_ENTRIES];
|
||||||
@@ -417,16 +414,6 @@ void ShowOnScreenKeyboard(Window *parent, int button)
|
|||||||
|
|
||||||
GetKeyboardLayout();
|
GetKeyboardLayout();
|
||||||
new OskWindow(&_osk_desc, parent, button);
|
new OskWindow(&_osk_desc, parent, button);
|
||||||
#ifdef __ANDROID__
|
|
||||||
char text[256];
|
|
||||||
SDL_ANDROID_GetScreenKeyboardTextInput(text, sizeof(text) - 1); /* Invoke Android built-in screen keyboard */
|
|
||||||
OskWindow *osk = dynamic_cast<OskWindow *>(FindWindowById(WC_OSK, 0));
|
|
||||||
osk->qs->text.Assign(text);
|
|
||||||
free(osk->orig_str_buf);
|
|
||||||
osk->orig_str_buf = strdup(osk->qs->text.buf);
|
|
||||||
|
|
||||||
osk->SetDirty();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user