From 8760185d5fe37caef7dd8700a586328fd4bc592e Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 4 Aug 2013 23:28:34 +0200 Subject: [PATCH] Fixed volume keys not being handled by Android if screen keyboard is visible. See bug #1569. --- .../src/org/libsdl/app/SDLActivity.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 9d57ef30f..7d70240da 100644 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -134,6 +134,16 @@ protected void onDestroy() { } } + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + int keyCode = event.getKeyCode(); + // Ignore volume keys so they're handled by Android + if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || + keyCode == KeyEvent.KEYCODE_VOLUME_UP) { + return false; + } + return super.dispatchKeyEvent(event); + } /** Called by onPause or surfaceDestroyed. Even if surfaceDestroyed * is the first to be called, mIsSurfaceReady should still be set @@ -726,12 +736,6 @@ public void onDraw(Canvas canvas) {} // Key events @Override public boolean onKey(View v, int keyCode, KeyEvent event) { - - // Ignore volume keys so they're handled by Android - if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || - keyCode == KeyEvent.KEYCODE_VOLUME_UP) { - return false; - } if (event.getAction() == KeyEvent.ACTION_DOWN) { //Log.v("SDL", "key down: " + keyCode);