mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-05-29 16:09:13 +00:00
Renamed ShowTextInput/HideTextInput to ShowScreenKeyboard/HideScreenKeyboard on Android
This better reflects the actual implementation and makes SDL_HINT_ENABLE_SCREEN_KEYBOARD work on Android. Fixes https://github.com/libsdl-org/SDL/issues/8652
This commit is contained in:
parent
3a9a52fe6c
commit
014a63b4b5
6 changed files with 25 additions and 24 deletions
|
@ -2239,7 +2239,7 @@ int Android_JNI_SuspendScreenSaver(SDL_bool suspend)
|
||||||
return Android_JNI_SendMessage(COMMAND_SET_KEEP_SCREEN_ON, (suspend == SDL_FALSE) ? 0 : 1);
|
return Android_JNI_SendMessage(COMMAND_SET_KEEP_SCREEN_ON, (suspend == SDL_FALSE) ? 0 : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Android_JNI_ShowTextInput(SDL_Rect *inputRect)
|
void Android_JNI_ShowScreenKeyboard(SDL_Rect *inputRect)
|
||||||
{
|
{
|
||||||
JNIEnv *env = Android_JNI_GetEnv();
|
JNIEnv *env = Android_JNI_GetEnv();
|
||||||
(*env)->CallStaticBooleanMethod(env, mActivityClass, midShowTextInput,
|
(*env)->CallStaticBooleanMethod(env, mActivityClass, midShowTextInput,
|
||||||
|
@ -2249,7 +2249,7 @@ void Android_JNI_ShowTextInput(SDL_Rect *inputRect)
|
||||||
inputRect->h);
|
inputRect->h);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Android_JNI_HideTextInput(void)
|
void Android_JNI_HideScreenKeyboard(void)
|
||||||
{
|
{
|
||||||
/* has to match Activity constant */
|
/* has to match Activity constant */
|
||||||
const int COMMAND_TEXTEDIT_HIDE = 3;
|
const int COMMAND_TEXTEDIT_HIDE = 3;
|
||||||
|
|
|
@ -43,8 +43,8 @@ extern void Android_JNI_MinizeWindow(void);
|
||||||
extern SDL_bool Android_JNI_ShouldMinimizeOnFocusLoss(void);
|
extern SDL_bool Android_JNI_ShouldMinimizeOnFocusLoss(void);
|
||||||
|
|
||||||
extern SDL_bool Android_JNI_GetAccelerometerValues(float values[3]);
|
extern SDL_bool Android_JNI_GetAccelerometerValues(float values[3]);
|
||||||
extern void Android_JNI_ShowTextInput(SDL_Rect *inputRect);
|
extern void Android_JNI_ShowScreenKeyboard(SDL_Rect *inputRect);
|
||||||
extern void Android_JNI_HideTextInput(void);
|
extern void Android_JNI_HideScreenKeyboard(void);
|
||||||
extern SDL_bool Android_JNI_IsScreenKeyboardShown(void);
|
extern SDL_bool Android_JNI_IsScreenKeyboardShown(void);
|
||||||
extern ANativeWindow *Android_JNI_GetNativeWindow(void);
|
extern ANativeWindow *Android_JNI_GetNativeWindow(void);
|
||||||
|
|
||||||
|
|
|
@ -132,8 +132,9 @@ void Android_PumpEvents_Blocking(SDL_VideoDevice *_this)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Make sure SW Keyboard is restored when an app becomes foreground */
|
/* Make sure SW Keyboard is restored when an app becomes foreground */
|
||||||
if (SDL_TextInputActive()) {
|
if (SDL_TextInputActive() &&
|
||||||
Android_StartTextInput(_this); /* Only showTextInput */
|
SDL_GetHintBoolean(SDL_HINT_ENABLE_SCREEN_KEYBOARD, SDL_TRUE)) {
|
||||||
|
Android_ShowScreenKeyboard(_this, Android_Window); /* Only showTextInput */
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_SendAppEvent(SDL_EVENT_DID_ENTER_FOREGROUND);
|
SDL_SendAppEvent(SDL_EVENT_DID_ENTER_FOREGROUND);
|
||||||
|
@ -212,8 +213,9 @@ void Android_PumpEvents_NonBlocking(SDL_VideoDevice *_this)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Make sure SW Keyboard is restored when an app becomes foreground */
|
/* Make sure SW Keyboard is restored when an app becomes foreground */
|
||||||
if (SDL_TextInputActive()) {
|
if (SDL_TextInputActive() &&
|
||||||
Android_StartTextInput(_this); /* Only showTextInput */
|
SDL_GetHintBoolean(SDL_HINT_ENABLE_SCREEN_KEYBOARD, SDL_TRUE)) {
|
||||||
|
Android_ShowScreenKeyboard(_this, Android_Window); /* Only showTextInput */
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_SendAppEvent(SDL_EVENT_DID_ENTER_FOREGROUND);
|
SDL_SendAppEvent(SDL_EVENT_DID_ENTER_FOREGROUND);
|
||||||
|
|
|
@ -341,22 +341,22 @@ SDL_bool Android_HasScreenKeyboardSupport(SDL_VideoDevice *_this)
|
||||||
return SDL_TRUE;
|
return SDL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Android_ShowScreenKeyboard(SDL_VideoDevice *_this, SDL_Window *window)
|
||||||
|
{
|
||||||
|
SDL_VideoData *videodata = _this->driverdata;
|
||||||
|
Android_JNI_ShowScreenKeyboard(&videodata->textRect);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Android_HideScreenKeyboard(SDL_VideoDevice *_this, SDL_Window *window)
|
||||||
|
{
|
||||||
|
Android_JNI_HideScreenKeyboard();
|
||||||
|
}
|
||||||
|
|
||||||
SDL_bool Android_IsScreenKeyboardShown(SDL_VideoDevice *_this, SDL_Window *window)
|
SDL_bool Android_IsScreenKeyboardShown(SDL_VideoDevice *_this, SDL_Window *window)
|
||||||
{
|
{
|
||||||
return Android_JNI_IsScreenKeyboardShown();
|
return Android_JNI_IsScreenKeyboardShown();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Android_StartTextInput(SDL_VideoDevice *_this)
|
|
||||||
{
|
|
||||||
SDL_VideoData *videodata = _this->driverdata;
|
|
||||||
Android_JNI_ShowTextInput(&videodata->textRect);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Android_StopTextInput(SDL_VideoDevice *_this)
|
|
||||||
{
|
|
||||||
Android_JNI_HideTextInput();
|
|
||||||
}
|
|
||||||
|
|
||||||
int Android_SetTextInputRect(SDL_VideoDevice *_this, const SDL_Rect *rect)
|
int Android_SetTextInputRect(SDL_VideoDevice *_this, const SDL_Rect *rect)
|
||||||
{
|
{
|
||||||
SDL_VideoData *videodata = _this->driverdata;
|
SDL_VideoData *videodata = _this->driverdata;
|
||||||
|
|
|
@ -26,8 +26,7 @@ extern int Android_OnKeyDown(int keycode);
|
||||||
extern int Android_OnKeyUp(int keycode);
|
extern int Android_OnKeyUp(int keycode);
|
||||||
|
|
||||||
extern SDL_bool Android_HasScreenKeyboardSupport(SDL_VideoDevice *_this);
|
extern SDL_bool Android_HasScreenKeyboardSupport(SDL_VideoDevice *_this);
|
||||||
|
extern void Android_ShowScreenKeyboard(SDL_VideoDevice *_this, SDL_Window *window);
|
||||||
|
extern void Android_HideScreenKeyboard(SDL_VideoDevice *_this, SDL_Window *window);
|
||||||
extern SDL_bool Android_IsScreenKeyboardShown(SDL_VideoDevice *_this, SDL_Window *window);
|
extern SDL_bool Android_IsScreenKeyboardShown(SDL_VideoDevice *_this, SDL_Window *window);
|
||||||
|
|
||||||
extern void Android_StartTextInput(SDL_VideoDevice *_this);
|
|
||||||
extern void Android_StopTextInput(SDL_VideoDevice *_this);
|
|
||||||
extern int Android_SetTextInputRect(SDL_VideoDevice *_this, const SDL_Rect *rect);
|
extern int Android_SetTextInputRect(SDL_VideoDevice *_this, const SDL_Rect *rect);
|
||||||
|
|
|
@ -142,12 +142,12 @@ static SDL_VideoDevice *Android_CreateDevice(void)
|
||||||
device->SuspendScreenSaver = Android_SuspendScreenSaver;
|
device->SuspendScreenSaver = Android_SuspendScreenSaver;
|
||||||
|
|
||||||
/* Text input */
|
/* Text input */
|
||||||
device->StartTextInput = Android_StartTextInput;
|
|
||||||
device->StopTextInput = Android_StopTextInput;
|
|
||||||
device->SetTextInputRect = Android_SetTextInputRect;
|
device->SetTextInputRect = Android_SetTextInputRect;
|
||||||
|
|
||||||
/* Screen keyboard */
|
/* Screen keyboard */
|
||||||
device->HasScreenKeyboardSupport = Android_HasScreenKeyboardSupport;
|
device->HasScreenKeyboardSupport = Android_HasScreenKeyboardSupport;
|
||||||
|
device->ShowScreenKeyboard = Android_ShowScreenKeyboard;
|
||||||
|
device->HideScreenKeyboard = Android_HideScreenKeyboard;
|
||||||
device->IsScreenKeyboardShown = Android_IsScreenKeyboardShown;
|
device->IsScreenKeyboardShown = Android_IsScreenKeyboardShown;
|
||||||
|
|
||||||
/* Clipboard */
|
/* Clipboard */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue