SDL_IsScreenKeyboardShown() will work with SDL_ANDROID_ToggleScreenKeyboardWithoutTextInput()
This commit is contained in:
@@ -487,18 +487,31 @@ public class MainActivity extends Activity
|
|||||||
if( !keyboardWithoutTextInputShown )
|
if( !keyboardWithoutTextInputShown )
|
||||||
{
|
{
|
||||||
keyboardWithoutTextInputShown = true;
|
keyboardWithoutTextInputShown = true;
|
||||||
_inputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
|
runOnUiThread(new Runnable()
|
||||||
_inputManager.showSoftInput(mGLView, InputMethodManager.SHOW_FORCED);
|
{
|
||||||
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
|
public void run()
|
||||||
|
{
|
||||||
|
_inputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
|
||||||
|
_inputManager.showSoftInput(mGLView, InputMethodManager.SHOW_FORCED);
|
||||||
|
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
keyboardWithoutTextInputShown = false;
|
keyboardWithoutTextInputShown = false;
|
||||||
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
|
runOnUiThread(new Runnable()
|
||||||
_inputManager.hideSoftInputFromWindow(mGLView.getWindowToken(), 0);
|
{
|
||||||
DimSystemStatusBar.get().dim(_videoLayout);
|
public void run()
|
||||||
//DimSystemStatusBar.get().dim(mGLView);
|
{
|
||||||
|
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
|
||||||
|
_inputManager.hideSoftInputFromWindow(mGLView.getWindowToken(), 0);
|
||||||
|
DimSystemStatusBar.get().dim(_videoLayout);
|
||||||
|
//DimSystemStatusBar.get().dim(mGLView);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
mGLView.nativeScreenKeyboardShown( keyboardWithoutTextInputShown ? 1 : 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showScreenKeyboard(final String oldText)
|
public void showScreenKeyboard(final String oldText)
|
||||||
|
|||||||
@@ -759,17 +759,7 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer
|
|||||||
|
|
||||||
public void showScreenKeyboardWithoutTextInputField() // Called from native code
|
public void showScreenKeyboardWithoutTextInputField() // Called from native code
|
||||||
{
|
{
|
||||||
class Callback implements Runnable
|
context.showScreenKeyboardWithoutTextInputField();
|
||||||
{
|
|
||||||
public MainActivity parent;
|
|
||||||
public void run()
|
|
||||||
{
|
|
||||||
parent.showScreenKeyboardWithoutTextInputField();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Callback cb = new Callback();
|
|
||||||
cb.parent = context;
|
|
||||||
context.runOnUiThread(cb);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showScreenKeyboard(final String oldText, int unused) // Called from native code
|
public void showScreenKeyboard(final String oldText, int unused) // Called from native code
|
||||||
@@ -1067,4 +1057,5 @@ class DemoGLSurfaceView extends GLSurfaceView_SDL {
|
|||||||
public static native void nativeMouseWheel( int scrollX, int scrollY );
|
public static native void nativeMouseWheel( int scrollX, int scrollY );
|
||||||
public static native void nativeGamepadAnalogJoystickInput( float stick1x, float stick1y, float stick2x, float stick2y, float ltrigger, float rtrigger, int usingHat );
|
public static native void nativeGamepadAnalogJoystickInput( float stick1x, float stick1y, float stick2x, float stick2y, float ltrigger, float rtrigger, int usingHat );
|
||||||
public static native void nativeScreenVisibleRect( int x, int y, int w, int h );
|
public static native void nativeScreenVisibleRect( int x, int y, int w, int h );
|
||||||
|
public static native void nativeScreenKeyboardShown( int shown );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -298,20 +298,15 @@ void SDL_ANDROID_CallJavaHideScreenKeyboard()
|
|||||||
|
|
||||||
int SDL_ANDROID_IsScreenKeyboardShown()
|
int SDL_ANDROID_IsScreenKeyboardShown()
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
// Efficient implementation sometimes fails for no real reason, so poll Java from time to time
|
|
||||||
// Or maybe not, this was when I've added some debug code, not observed anymore
|
|
||||||
static int safetyCounter = 0;
|
|
||||||
if( safetyCounter >= 60 ) {
|
|
||||||
safetyCounter = 0;
|
|
||||||
SDL_ANDROID_IsScreenKeyboardShownFlag = (*JavaEnv)->CallIntMethod( JavaEnv, JavaRenderer, JavaIsScreenKeyboardShown );
|
|
||||||
}
|
|
||||||
safetyCounter ++;
|
|
||||||
*/
|
|
||||||
|
|
||||||
return SDL_ANDROID_IsScreenKeyboardShownFlag;
|
return SDL_ANDROID_IsScreenKeyboardShownFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JNIEXPORT void JNICALL
|
||||||
|
JAVA_EXPORT_NAME(DemoGLSurfaceView_nativeScreenKeyboardShown) ( JNIEnv* env, jobject thiz, jint shown )
|
||||||
|
{
|
||||||
|
SDL_ANDROID_IsScreenKeyboardShownFlag = shown;
|
||||||
|
}
|
||||||
|
|
||||||
void SDL_ANDROID_CallJavaSetScreenKeyboardHintMessage(const char *hint)
|
void SDL_ANDROID_CallJavaSetScreenKeyboardHintMessage(const char *hint)
|
||||||
{
|
{
|
||||||
(*JavaEnv)->PushLocalFrame(JavaEnv, 1);
|
(*JavaEnv)->PushLocalFrame(JavaEnv, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user