From fed1bc383bc820ffcc384dd8b80a7235fbec5bd5 Mon Sep 17 00:00:00 2001 From: pelya Date: Thu, 16 Dec 2010 15:20:29 +0000 Subject: [PATCH] Fixed typo in header file, implemented changing keycodes for on-screen keyboard --- ChangeAppSettings.sh | 5 +- project/java/Settings.java | 48 ++++++++++++------- project/java/translations/values/strings.xml | 2 +- .../teeworlds/src/engine/client/ec_gfx.cpp | 14 +++--- .../jni/sdl-1.3/include/SDL_screenkeyboard.h | 19 ++++---- .../src/video/android/SDL_androidinput.c | 39 +++++++++++++++ .../video/android/SDL_touchscreenkeyboard.c | 32 ++++++------- 7 files changed, 107 insertions(+), 52 deletions(-) diff --git a/ChangeAppSettings.sh b/ChangeAppSettings.sh index 085a27203..3517cf7b7 100755 --- a/ChangeAppSettings.sh +++ b/ChangeAppSettings.sh @@ -205,7 +205,10 @@ fi fi if [ -z "$RedefinedKeysScreenKb" -o -z "$AUTO" ]; then -echo -n "\nRedefine on-screen keyboard keys to SDL keysyms - 6 keyboard keys + 4 multitouch gestures (zoom and rotate)" +if [ -z "$RedefinedKeysScreenKb" ]; then + RedefinedKeysScreenKb="$RedefinedKeys" +fi +echo -n "\nRedefine on-screen keyboard keys to SDL keysyms - 6 keyboard keys + 4 multitouch gestures (zoom in/out and rotate left/right)" echo -n "\n$RedefinedKeysScreenKb - current SDL keycodes" echo -n "\n: " read var diff --git a/project/java/Settings.java b/project/java/Settings.java index ef6926053..7ed80735d 100644 --- a/project/java/Settings.java +++ b/project/java/Settings.java @@ -73,7 +73,6 @@ class Settings for( int i = 0; i < Globals.ScreenKbControlsShown.length; i++ ) { out.writeBoolean(Globals.ScreenKbControlsShown[i]); - out.writeInt(Globals.RemapScreenKbKeycode[i]); } out.close(); @@ -101,20 +100,19 @@ class Settings idx = ii; Globals.RemapHwKeycode[i] = idx; } - for( int i = 0; i < Globals.ScreenKbControlsShown.length; i++ ) + for( int i = 0; i < Globals.RemapScreenKbKeycode.length; i++ ) { int sdlKey = nativeGetKeymapKeyScreenKb(i); int idx = 0; for(int ii = 0; ii < SDL_Keys.values.length; ii++) if(SDL_Keys.values[ii] == sdlKey) idx = ii; - Globals.RemapHwKeycode[i] = idx; Globals.RemapScreenKbKeycode[i] = idx; } Globals.ScreenKbControlsShown[0] = Globals.AppNeedsArrowKeys; - for( int i = 1; i < 7; i++ ) - Globals.ScreenKbControlsShown[i] = ( i <= Globals.AppTouchscreenKeyboardKeysAmount ); - Globals.ScreenKbControlsShown[7] = Globals.AppNeedsTextInput; + Globals.ScreenKbControlsShown[1] = Globals.AppNeedsTextInput; + for( int i = 2; i < 7; i++ ) + Globals.ScreenKbControlsShown[i] = ( i - 2 < Globals.AppTouchscreenKeyboardKeysAmount ); for( int i = 8; i < 12; i++ ) Globals.ScreenKbControlsShown[i] = true; @@ -160,7 +158,6 @@ class Settings for( int i = 0; i < Globals.ScreenKbControlsShown.length; i++ ) { Globals.ScreenKbControlsShown[i] = settingsFile.readBoolean(); - Globals.RemapScreenKbKeycode[i] = settingsFile.readInt(); } settingsLoaded = true; @@ -245,7 +242,8 @@ class Settings items.add(p.getResources().getString(R.string.remap_hwkeys)); - items.add(p.getResources().getString(R.string.remap_screenkb)); + if( Globals.UseTouchscreenKeyboard ) + items.add(p.getResources().getString(R.string.remap_screenkb)); items.add(p.getResources().getString(R.string.ok)); @@ -325,8 +323,11 @@ class Settings showRemapHwKeysConfig(p); selected++; - if( item == selected ) - showRemapScreenKbConfig(p); + if( ! Globals.UseTouchscreenKeyboard ) + item += 1; + else + if( item == selected ) + showRemapScreenKbConfig(p); selected++; if( item == selected ) @@ -947,10 +948,13 @@ class Settings p.getResources().getString(R.string.remap_screenkb_button) + " 4", p.getResources().getString(R.string.remap_screenkb_button) + " 5", p.getResources().getString(R.string.remap_screenkb_button) + " 6", + // Not implemented yet! + /* p.getResources().getString(R.string.remap_screenkb_button_zoomin), p.getResources().getString(R.string.remap_screenkb_button_zoomout), p.getResources().getString(R.string.remap_screenkb_button_rotateleft), p.getResources().getString(R.string.remap_screenkb_button_rotateright), + */ }; boolean defaults[] = { @@ -962,12 +966,16 @@ class Settings Globals.ScreenKbControlsShown[5], Globals.ScreenKbControlsShown[6], Globals.ScreenKbControlsShown[7], + // Not implemented yet! + /* Globals.ScreenKbControlsShown[8], Globals.ScreenKbControlsShown[9], Globals.ScreenKbControlsShown[10], Globals.ScreenKbControlsShown[11], + */ }; + if( ! Globals.UseTouchscreenKeyboard ) { for( int i = 0; i < 8; i++ ) @@ -1025,13 +1033,16 @@ class Settings p.getResources().getString(R.string.remap_screenkb_button) + " 4", p.getResources().getString(R.string.remap_screenkb_button) + " 5", p.getResources().getString(R.string.remap_screenkb_button) + " 6", + // Not implemented yet! + /* p.getResources().getString(R.string.remap_screenkb_button_zoomin), p.getResources().getString(R.string.remap_screenkb_button_zoomout), p.getResources().getString(R.string.remap_screenkb_button_rotateleft), p.getResources().getString(R.string.remap_screenkb_button_rotateright), + */ }; - if( currentButton >= Globals.RemapScreenKbKeycode.length ) + if( currentButton >= items.length ) // Globals.RemapScreenKbKeycode.length ) { showConfigMainMenu(p); return; @@ -1088,10 +1099,10 @@ class Settings nativeSetTouchscreenKeyboardUsed(); nativeSetupScreenKeyboard( Globals.TouchscreenKeyboardSize, Globals.TouchscreenKeyboardTheme, - Globals.AppTouchscreenKeyboardKeysAmount, + 7, // Globals.AppTouchscreenKeyboardKeysAmount, - set later by nativeSetScreenKbKeyUsed() Globals.AppTouchscreenKeyboardKeysAmountAutoFire, - Globals.AppNeedsArrowKeys ? 1 : 0, - Globals.AppNeedsTextInput ? 1 : 0 ); + 1, //Globals.AppNeedsArrowKeys ? 1 : 0, + 1 ); //Globals.AppNeedsTextInput ? 1 : 0 ); } SetupTouchscreenKeyboardGraphics(p); for( int i = 0; i < SDL_Keys.JAVA_KEYCODE_LAST; i++ ) @@ -1101,7 +1112,9 @@ class Settings for( int i = 0; i < Globals.ScreenKbControlsShown.length; i++ ) { - nativeSetKeymapKeyScreenKb(i, i >= 2 ? SDL_Keys.values[Globals.RemapScreenKbKeycode[i-2]] : 0, Globals.ScreenKbControlsShown[i] ? 1 : 0); + nativeSetScreenKbKeyUsed(i, Globals.ScreenKbControlsShown[i] ? 1 : 0); + if( i >= 2 ) + nativeSetKeymapKeyScreenKb(i, SDL_Keys.values[Globals.RemapScreenKbKeycode[i-2]]); } String lang = new String(Locale.getDefault().getLanguage()); @@ -1156,9 +1169,10 @@ class Settings private static native void nativeSetupScreenKeyboardButtons(byte[] img); private static native void nativeInitKeymap(); private static native int nativeGetKeymapKey(int key); - private static native int nativeGetKeymapKeyScreenKb(int key); private static native void nativeSetKeymapKey(int javakey, int key); - private static native void nativeSetKeymapKeyScreenKb(int javakey, int key, int used); + private static native int nativeGetKeymapKeyScreenKb(int keynum); + private static native void nativeSetKeymapKeyScreenKb(int keynum, int key); + private static native void nativeSetScreenKbKeyUsed(int keynum, int used); public static native void nativeSetEnv(final String name, final String value); } diff --git a/project/java/translations/values/strings.xml b/project/java/translations/values/strings.xml index f8c159a02..491e9f5a7 100644 --- a/project/java/translations/values/strings.xml +++ b/project/java/translations/values/strings.xml @@ -41,7 +41,7 @@ Small Tiny On-screen keyboard theme - %1$s by %1$s + %1$s by %2$s No dampening Fast diff --git a/project/jni/application/teeworlds/src/engine/client/ec_gfx.cpp b/project/jni/application/teeworlds/src/engine/client/ec_gfx.cpp index 48c8922b7..a33106f68 100644 --- a/project/jni/application/teeworlds/src/engine/client/ec_gfx.cpp +++ b/project/jni/application/teeworlds/src/engine/client/ec_gfx.cpp @@ -311,7 +311,7 @@ static int try_init() { // Disable DPAD SDL_Rect pos = {0, 0, 0, 0}; - SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD, &pos); + SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD, &pos); // Rope button in lower-right pos.x = screen_width; @@ -321,7 +321,7 @@ static int try_init() pos.x -= pos.w; pos.y -= pos.h; - SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0, &pos); + SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_0, &pos); // Move and jump buttons overlapped in lower-left pos.x = 0; @@ -330,18 +330,18 @@ static int try_init() pos.h = pos.w*1.5; pos.y -= pos.h; - SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_2, &pos); + SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_2, &pos); pos.x += pos.w; - SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_3, &pos); + SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_3, &pos); pos.w *= 2; pos.h = pos.w*2/3; pos.x = 0; pos.y -= pos.h/2; - SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_1, &pos); + SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_1, &pos); // weapprev weapnext buttons @@ -351,11 +351,11 @@ static int try_init() pos.h = pos.w; pos.x -= pos.w; - SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_5, &pos); + SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_5, &pos); pos.x = 0; - SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_4, &pos); + SDL_ANDROID_SetScreenKeyboardButtonPos(SDL_ANDROID_SCREENKEYBOARD_BUTTON_4, &pos); } #endif diff --git a/project/jni/sdl-1.3/include/SDL_screenkeyboard.h b/project/jni/sdl-1.3/include/SDL_screenkeyboard.h index d3a4474fa..cfb9e5f03 100644 --- a/project/jni/sdl-1.3/include/SDL_screenkeyboard.h +++ b/project/jni/sdl-1.3/include/SDL_screenkeyboard.h @@ -38,17 +38,18 @@ extern "C" { /* Button IDs */ enum { - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD = 0, /* Joystick/D-Pad button */ + SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD = 0, /* Joystick/D-Pad button */ - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0, /* Main (usually Fire) button */ - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_1, - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_2, - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_3, - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_4, - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_5, - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_6, /* Button to show screen keyboard */ + SDL_ANDROID_SCREENKEYBOARD_BUTTON_0, /* Main (usually Fire) button */ + SDL_ANDROID_SCREENKEYBOARD_BUTTON_1, + SDL_ANDROID_SCREENKEYBOARD_BUTTON_2, + SDL_ANDROID_SCREENKEYBOARD_BUTTON_3, + SDL_ANDROID_SCREENKEYBOARD_BUTTON_4, + SDL_ANDROID_SCREENKEYBOARD_BUTTON_5, - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX = SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_6 + SDL_ANDROID_SCREENKEYBOARD_BUTTON_TEXT, /* Button to show screen keyboard */ + + SDL_ANDROID_SCREENKEYBOARD_BUTTON_MAX = SDL_ANDROID_SCREENKEYBOARD_BUTTON_TEXT }; /* All functions return 0 on failure and 1 on success */ diff --git a/project/jni/sdl-1.3/src/video/android/SDL_androidinput.c b/project/jni/sdl-1.3/src/video/android/SDL_androidinput.c index 202cfd27b..96fd73de5 100644 --- a/project/jni/sdl-1.3/src/video/android/SDL_androidinput.c +++ b/project/jni/sdl-1.3/src/video/android/SDL_androidinput.c @@ -40,6 +40,7 @@ #include "../SDL_sysvideo.h" #include "SDL_androidvideo.h" #include "SDL_androidinput.h" +#include "SDL_screenkeyboard.h" #include "jniwrapperstuff.h" @@ -1244,6 +1245,44 @@ JAVA_EXPORT_NAME(Settings_nativeSetKeymapKey) ( JNIEnv* env, jobject thiz, jint SDL_android_keymap[javakey] = key; } +JNIEXPORT jint JNICALL +JAVA_EXPORT_NAME(Settings_nativeGetKeymapKeyScreenKb) ( JNIEnv* env, jobject thiz, jint keynum) +{ + if( keynum < 0 || keynum > SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 + 4 ) + return SDL_KEY(UNKNOWN); + + if( keynum <= SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 ) + return SDL_ANDROID_GetScreenKeyboardButtonKey(keynum + SDL_ANDROID_SCREENKEYBOARD_BUTTON_0); + + return SDL_KEY(UNKNOWN); +} + +JNIEXPORT void JNICALL +JAVA_EXPORT_NAME(Settings_nativeSetKeymapKeyScreenKb) ( JNIEnv* env, jobject thiz, jint keynum, jint key) +{ + if( keynum < 0 || keynum > SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 + 4 ) + return; + + if( keynum <= SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 ) + SDL_ANDROID_SetScreenKeyboardButtonKey(keynum + SDL_ANDROID_SCREENKEYBOARD_BUTTON_0, key); +} + +JNIEXPORT void JNICALL +JAVA_EXPORT_NAME(Settings_nativeSetScreenKbKeyUsed) ( JNIEnv* env, jobject thiz, jint keynum, jint used) +{ + SDL_Rect rect = {0, 0, 0, 0}; + int key = -1; + if( keynum == 0 ) + key = SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD; + if( keynum == 1 ) + key = SDL_ANDROID_SCREENKEYBOARD_BUTTON_TEXT; + if( keynum - 2 > 0 && keynum - 2 < SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 ) + key = keynum - 2 + SDL_ANDROID_SCREENKEYBOARD_BUTTON_0; + + if( key >= 0 && !used ) + SDL_ANDROID_SetScreenKeyboardButtonPos(key, &rect); +} + JNIEXPORT void JNICALL JAVA_EXPORT_NAME(Settings_nativeInitKeymap) ( JNIEnv* env, jobject thiz ) { diff --git a/project/jni/sdl-1.3/src/video/android/SDL_touchscreenkeyboard.c b/project/jni/sdl-1.3/src/video/android/SDL_touchscreenkeyboard.c index 21e377998..c88a744f2 100644 --- a/project/jni/sdl-1.3/src/video/android/SDL_touchscreenkeyboard.c +++ b/project/jni/sdl-1.3/src/video/android/SDL_touchscreenkeyboard.c @@ -55,7 +55,7 @@ FONT_BTN1 = 4, FONT_BTN2 = 5, FONT_BTN3 = 6, FONT_BTN4 = 7 static GLshort fontGL[sizeof(font)/sizeof(font[0])][FONT_MAX_LINES_PER_CHAR * 4 + 1]; enum { FONT_CHAR_LINES_COUNT = FONT_MAX_LINES_PER_CHAR * 4 }; -enum { MAX_BUTTONS = SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX, MAX_BUTTONS_AUTOFIRE = 2, BUTTON_TEXT_INPUT = MAX_BUTTONS - 1 } ; // Max amount of custom buttons +enum { MAX_BUTTONS = SDL_ANDROID_SCREENKEYBOARD_BUTTON_MAX, MAX_BUTTONS_AUTOFIRE = 2, BUTTON_TEXT_INPUT = SDL_ANDROID_SCREENKEYBOARD_BUTTON_TEXT } ; // Max amount of custom buttons int SDL_ANDROID_isTouchscreenKeyboardUsed = 0; static int touchscreenKeyboardTheme = 0; @@ -70,8 +70,7 @@ SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_1)), SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_2)), SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_3)), SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_4)), -SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_5)), -0 +SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_SCREENKB_KEYCODE_5)) }; enum { ARROW_LEFT = 1, ARROW_RIGHT = 2, ARROW_UP = 4, ARROW_DOWN = 8 }; @@ -849,10 +848,10 @@ JAVA_EXPORT_NAME(Settings_nativeSetupScreenKeyboardButtons) ( JNIEnv* env, jobj int SDL_ANDROID_SetScreenKeyboardButtonPos(int buttonId, SDL_Rect * pos) { - if( buttonId < 0 || buttonId > SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX || ! pos ) + if( buttonId < 0 || buttonId > SDL_ANDROID_SCREENKEYBOARD_BUTTON_MAX || ! pos ) return 0; - if( buttonId == SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD ) + if( buttonId == SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD ) { arrows = *pos; if(touchscreenKeyboardTheme == 0) @@ -865,10 +864,10 @@ int SDL_ANDROID_SetScreenKeyboardButtonPos(int buttonId, SDL_Rect * pos) } else { - buttons[buttonId - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0] = *pos; + buttons[buttonId - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0] = *pos; if(touchscreenKeyboardTheme == 0) { - int i = buttonId - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0; + int i = buttonId - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0; prepareFontCharWireframe(FONT_BTN1 + i, MIN(buttons[i].h, buttons[i].w), MIN(buttons[i].h, buttons[i].w)); } } @@ -877,37 +876,35 @@ int SDL_ANDROID_SetScreenKeyboardButtonPos(int buttonId, SDL_Rect * pos) int SDL_ANDROID_GetScreenKeyboardButtonPos(int buttonId, SDL_Rect * pos) { - if( buttonId < 0 || buttonId > SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX || ! pos ) + if( buttonId < 0 || buttonId > SDL_ANDROID_SCREENKEYBOARD_BUTTON_MAX || ! pos ) return 0; - if( buttonId == SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD ) + if( buttonId == SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD ) { *pos = arrows; } else { - *pos = buttons[buttonId - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0]; + *pos = buttons[buttonId - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0]; } return 1; }; int SDL_ANDROID_SetScreenKeyboardButtonKey(int buttonId, SDLKey key) { - if( buttonId < 0 || buttonId > SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX || ! key ) + if( buttonId < SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 || buttonId > SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 || ! key ) return 0; - if( buttonId == SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD ) - return 0; - buttonKeysyms[buttonId - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0] = key; + buttonKeysyms[buttonId - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0] = key; return 1; }; SDLKey SDL_ANDROID_GetScreenKeyboardButtonKey(int buttonId) { - if( buttonId < 0 || buttonId > SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_MAX ) + if( buttonId < SDL_ANDROID_SCREENKEYBOARD_BUTTON_0 || buttonId > SDL_ANDROID_SCREENKEYBOARD_BUTTON_5 ) return SDLK_UNKNOWN; - if( buttonId == SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_DPAD ) + if( buttonId == SDL_ANDROID_SCREENKEYBOARD_BUTTON_DPAD ) return SDLK_UNKNOWN; - return buttonKeysyms[buttonId - SDL_ANDRIOD_SCREENKEYBOARD_BUTTON_0]; + return buttonKeysyms[buttonId - SDL_ANDROID_SCREENKEYBOARD_BUTTON_0]; }; int SDL_ANDROID_SetScreenKeyboardAutoFireButtonsAmount(int nbuttons) @@ -943,3 +940,4 @@ int SDL_ANDROID_ToggleScreenKeyboardTextInput() SDL_ANDROID_CallJavaShowScreenKeyboard(); return 1; }; +