diff --git a/src/src/org/renpy/android/SDLSurfaceView.java b/src/src/org/renpy/android/SDLSurfaceView.java index 1fc1c53514..2d6ccfae4d 100644 --- a/src/src/org/renpy/android/SDLSurfaceView.java +++ b/src/src/org/renpy/android/SDLSurfaceView.java @@ -336,7 +336,6 @@ private void printConfig(EGL10 egl, EGLDisplay display, public SDLSurfaceView(Activity act, String argument) { super(act); - SDLSurfaceView.instance = this; mActivity = act; @@ -960,6 +959,32 @@ public boolean onKeyUp(int keyCode, final KeyEvent event) { return super.onKeyUp(keyCode, event); } } + + @Override + public boolean onKeyMultiple(int keyCode, int count, KeyEvent event){ + String keys = event.getCharacters(); + char[] keysBuffer = new char[keys.length()]; + if (keyCode == 0){ + // FIXME: here is hardcoed value of "q" key + // on hacker's keyboard. It is passed to + // nativeKey function to get it worked if + // we get 9 and some non-ascii characters + // but it my cause some odd behaviour + keyCode = 45; + } + + if (mInputActivated){ + keys.getChars(0, keys.length(), keysBuffer, 0); + for(char c: keysBuffer){ + //Log.i("python", "Char from multiply " + (int) c); + // Calls both up/down events to emulate key pressing + nativeKey(keyCode, 1, (int) c); + nativeKey(keyCode, 0, (int) c); + } + } + + return true; + } static void activateInput() { mInputActivated = true;