Răsfoiți Sursa

Enable long press, pan and scale gestures for the Godot Android Editor

Fix the bug causing the editor to crash when running the project.
Fredia Huya-Kouadio 2 ani în urmă
părinte
comite
63df48a59c

+ 2 - 0
editor/progress_dialog.cpp

@@ -212,7 +212,9 @@ bool ProgressDialog::task_step(const String &p_task, const String &p_state, int
 		OS::get_singleton()->force_process_input();
 	}
 
+#ifndef ANDROID_ENABLED
 	Main::iteration(); // this will not work on a lot of platforms, so it's only meant for the editor
+#endif
 	return cancelled;
 }
 

+ 16 - 0
platform/android/java/editor/src/main/java/org/godotengine/editor/GodotEditor.kt

@@ -77,6 +77,12 @@ open class GodotEditor : FullScreenGodotApp() {
 		}
 
 		super.onCreate(savedInstanceState)
+
+		// Enable long press, panning and scaling gestures
+		godotFragment?.mView?.inputHandler?.apply {
+			enableLongPress(enableLongPressGestures())
+			enablePanningAndScalingGestures(enablePanAndScaleGestures())
+		}
 	}
 
 	private fun updateCommandLineParams(args: Array<String>?) {
@@ -148,6 +154,16 @@ open class GodotEditor : FullScreenGodotApp() {
 	 */
 	protected open fun overrideOrientationRequest() = true
 
+	/**
+	 * Enable long press gestures for the Godot Android editor.
+	 */
+	protected open fun enableLongPressGestures() = true
+
+	/**
+	 * Enable pan and scale gestures for the Godot Android editor.
+	 */
+	protected open fun enablePanAndScaleGestures() = true
+
 	override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
 		super.onActivityResult(requestCode, resultCode, data)
 		// Check if we got the MANAGE_EXTERNAL_STORAGE permission

+ 4 - 0
platform/android/java/editor/src/main/java/org/godotengine/editor/GodotGame.kt

@@ -35,4 +35,8 @@ package org.godotengine.editor
  */
 class GodotGame : GodotEditor() {
 	override fun overrideOrientationRequest() = false
+
+	override fun enableLongPressGestures() = false
+
+	override fun enablePanAndScaleGestures() = false
 }