Browse Source

Merge pull request #95460 from m4gr3d/enable_mouse_forward_back_buttons

Enable `BUTTON_FORWARD` and `BUTTON_BACK` mouse buttons on Android
Rémi Verschelde 8 months ago
parent
commit
66b8101cef

+ 3 - 3
doc/classes/@GlobalScope.xml

@@ -2030,16 +2030,16 @@
 			Help key.
 		</constant>
 		<constant name="KEY_BACK" value="4194376" enum="Key">
-			Media back key. Not to be confused with the Back button on an Android device.
+			Back key.
 		</constant>
 		<constant name="KEY_FORWARD" value="4194377" enum="Key">
-			Media forward key.
+			Forward key.
 		</constant>
 		<constant name="KEY_STOP" value="4194378" enum="Key">
 			Media stop key.
 		</constant>
 		<constant name="KEY_REFRESH" value="4194379" enum="Key">
-			Media refresh key.
+			Refresh key.
 		</constant>
 		<constant name="KEY_VOLUMEDOWN" value="4194380" enum="Key">
 			Volume down key.

+ 8 - 2
editor/plugins/script_editor_plugin.cpp

@@ -4266,8 +4266,14 @@ ScriptEditor::ScriptEditor(WindowWrapper *p_wrapper) {
 	file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/show_in_file_system", TTR("Show in FileSystem")), SHOW_IN_FILE_SYSTEM);
 	file_menu->get_popup()->add_separator();
 
-	file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/history_previous", TTR("History Previous"), KeyModifierMask::ALT | Key::LEFT), WINDOW_PREV);
-	file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/history_next", TTR("History Next"), KeyModifierMask::ALT | Key::RIGHT), WINDOW_NEXT);
+	file_menu->get_popup()->add_shortcut(
+			ED_SHORTCUT_ARRAY("script_editor/history_previous", TTR("History Previous"),
+					{ int32_t(KeyModifierMask::ALT | Key::LEFT), int32_t(Key::BACK) }),
+			WINDOW_PREV);
+	file_menu->get_popup()->add_shortcut(
+			ED_SHORTCUT_ARRAY("script_editor/history_next", TTR("History Next"),
+					{ int32_t(KeyModifierMask::ALT | Key::RIGHT), int32_t(Key::FORWARD) }),
+			WINDOW_NEXT);
 	ED_SHORTCUT_OVERRIDE("script_editor/history_previous", "macos", KeyModifierMask::ALT | KeyModifierMask::META | Key::LEFT);
 	ED_SHORTCUT_OVERRIDE("script_editor/history_next", "macos", KeyModifierMask::ALT | KeyModifierMask::META | Key::RIGHT);
 

+ 2 - 7
platform/android/java/lib/src/org/godotengine/godot/Godot.kt

@@ -970,15 +970,10 @@ class Godot(private val context: Context) {
 	}
 
 	fun onBackPressed() {
-		var shouldQuit = true
 		for (plugin in pluginRegistry.allPlugins) {
-			if (plugin.onMainBackPressed()) {
-				shouldQuit = false
-			}
-		}
-		if (shouldQuit) {
-			renderView?.queueOnRenderThread { GodotLib.back() }
+			plugin.onMainBackPressed()
 		}
+		renderView?.queueOnRenderThread { GodotLib.back() }
 	}
 
 	/**

+ 0 - 11
platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java

@@ -154,10 +154,6 @@ public class GodotInputHandler implements InputManager.InputDeviceListener, Sens
 	}
 
 	public boolean onKeyUp(final int keyCode, KeyEvent event) {
-		if (keyCode == KeyEvent.KEYCODE_BACK) {
-			return true;
-		}
-
 		if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
 			return false;
 		}
@@ -183,13 +179,6 @@ public class GodotInputHandler implements InputManager.InputDeviceListener, Sens
 	}
 
 	public boolean onKeyDown(final int keyCode, KeyEvent event) {
-		if (keyCode == KeyEvent.KEYCODE_BACK) {
-			godot.onBackPressed();
-			// press 'back' button should not terminate program
-			//normal handle 'back' event in game logic
-			return true;
-		}
-
 		if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
 			return false;
 		}