diff options
| author | Juan Linietsky | 2014-03-13 23:14:35 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2014-03-13 23:14:35 -0300 |
| commit | 0a717ffee270b3d2761aaae6a42c06d999a5b823 (patch) | |
| tree | a52dd64a8c76e24f4734f917af3a124f4dea6d4b /platform/android/java/src | |
| parent | 31ce3c5fd0300aac1e86bced1efc5f9ec94bdb6b (diff) | |
| parent | 81757d2e977d959e6b0bc26f9fa990417ca91de9 (diff) | |
| download | godot-0a717ffee270b3d2761aaae6a42c06d999a5b823.tar.gz godot-0a717ffee270b3d2761aaae6a42c06d999a5b823.tar.zst godot-0a717ffee270b3d2761aaae6a42c06d999a5b823.zip | |
Diffstat (limited to 'platform/android/java/src')
| -rw-r--r-- | platform/android/java/src/com/android/godot/Godot.java | 35 | ||||
| -rw-r--r-- | platform/android/java/src/com/android/godot/GodotLib.java | 4 |
2 files changed, 37 insertions, 2 deletions
diff --git a/platform/android/java/src/com/android/godot/Godot.java b/platform/android/java/src/com/android/godot/Godot.java index 9868e6295..276ba63b2 100644 --- a/platform/android/java/src/com/android/godot/Godot.java +++ b/platform/android/java/src/com/android/godot/Godot.java @@ -303,13 +303,44 @@ public class Godot extends Activity implements SensorEventListener return true; } + @Override public boolean onKeyMultiple(final int inKeyCode, int repeatCount, KeyEvent event) { + String s = event.getCharacters(); + if (s == null || s.length() == 0) + return super.onKeyMultiple(inKeyCode, repeatCount, event); + + final char[] cc = s.toCharArray(); + int cnt = 0; + for (int i = cc.length; --i >= 0; cnt += cc[i] != 0 ? 1 : 0); + if (cnt == 0) return super.onKeyMultiple(inKeyCode, repeatCount, event); + final Activity me = this; + queueEvent(new Runnable() { + // This method will be called on the rendering thread: + public void run() { + for (int i = 0, n = cc.length; i < n; i++) { + int keyCode; + if ((keyCode = cc[i]) != 0) { + // Simulate key down and up... + GodotLib.key(0, keyCode, true); + GodotLib.key(0, keyCode, false); + } + } + } + }); + return true; + } + + private void queueEvent(Runnable runnable) { + // TODO Auto-generated method stub + + } + @Override public boolean onKeyUp(int keyCode, KeyEvent event) { - GodotLib.key(event.getUnicodeChar(0), false); + GodotLib.key(keyCode, event.getUnicodeChar(0), false); return super.onKeyUp(keyCode, event); }; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { - GodotLib.key(event.getUnicodeChar(0), true); + GodotLib.key(keyCode, event.getUnicodeChar(0), true); return super.onKeyDown(keyCode, event); } diff --git a/platform/android/java/src/com/android/godot/GodotLib.java b/platform/android/java/src/com/android/godot/GodotLib.java index ffa3f306f..e496d8135 100644 --- a/platform/android/java/src/com/android/godot/GodotLib.java +++ b/platform/android/java/src/com/android/godot/GodotLib.java @@ -51,7 +51,11 @@ public class GodotLib { public static native void step(); public static native void touch(int what,int pointer,int howmany, int[] arr); public static native void accelerometer(float x, float y, float z); +<<<<<<< HEAD public static native void key(int p_unicode_char, boolean p_pressed); +======= + public static native void key(int p_scancode, int p_unicode_char, boolean p_pressed); +>>>>>>> 81757d2e977d959e6b0bc26f9fa990417ca91de9 public static native void focusin(); public static native void focusout(); public static native void audio(); |
