From b906ed4e5902785ab6f15012666e344c98fabe14 Mon Sep 17 00:00:00 2001 From: Maksim Gamarnik Date: Sat, 14 May 2016 23:35:56 +1000 Subject: Fix locked hardware buttons on Android Fixes #2122 Fixes #1454 Addendum (est31) According from its docs in android_native_app_glue.h (from the NDK), the onInputEvent should "Return 1 if you have handled the event, 0 for any default dispatching". Before, we always returned 1, meaning we blocked all hardware keys to be given to the OS. This broke the volume keys and has caused #2122 and #1454. Although it bases on lots of guesswork, it can probably safely be said that CGUIEnvironment::postEventFromUser returns true if the event was handled, and false if not. Therefore, set the status variable depending on what postEventFromUser returned. --- build/android/patches/irrlicht-back_button.patch | 23 +++++++++++----------- .../net.minetest.minetest/MtNativeActivity.java | 4 ++++ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/build/android/patches/irrlicht-back_button.patch b/build/android/patches/irrlicht-back_button.patch index 227749ba7..de567adc0 100644 --- a/build/android/patches/irrlicht-back_button.patch +++ b/build/android/patches/irrlicht-back_button.patch @@ -1,14 +1,15 @@ ---- irrlicht/source/Irrlicht/Android/CIrrDeviceAndroid.cpp 2014-06-03 20:56:21.289559503 +0200 -+++ irrlicht/source/Irrlicht/Android/CIrrDeviceAndroid.cpp.orig 2014-06-03 20:57:39.281556749 +0200 -@@ -423,6 +423,7 @@ - } - - device->postEventFromUser(event); -+ status = 1; - } - break; - default: -@@ -479,7 +480,7 @@ +--- irrlicht/source/Irrlicht/Android/CIrrDeviceAndroid.cpp.orig 2015-08-29 15:43:09.000000000 +0300 ++++ irrlicht/source/Irrlicht/Android/CIrrDeviceAndroid.cpp 2016-05-13 21:36:22.880388505 +0300 +@@ -486,7 +486,7 @@ + event.KeyInput.Char = 0; + } + +- device->postEventFromUser(event); ++ status = device->postEventFromUser(event); + } + break; + default: +@@ -543,7 +543,7 @@ KeyMap[1] = KEY_LBUTTON; // AKEYCODE_SOFT_LEFT KeyMap[2] = KEY_RBUTTON; // AKEYCODE_SOFT_RIGHT KeyMap[3] = KEY_HOME; // AKEYCODE_HOME diff --git a/build/android/src/main/java/net.minetest.minetest/MtNativeActivity.java b/build/android/src/main/java/net.minetest.minetest/MtNativeActivity.java index fc95a8379..3173a71f4 100644 --- a/build/android/src/main/java/net.minetest.minetest/MtNativeActivity.java +++ b/build/android/src/main/java/net.minetest.minetest/MtNativeActivity.java @@ -19,6 +19,10 @@ public class MtNativeActivity extends NativeActivity { public void onDestroy() { super.onDestroy(); } + + @Override + public void onBackPressed() { + } public void copyAssets() { -- cgit v1.2.3