Merge pull request #83173 from m4gr3d/fix_gestures_properties_retrieval_timing

Fix the timeframe when the Android gestures properties are retrieved
This commit is contained in:
Rémi Verschelde 2023-10-16 10:40:12 +02:00
commit 39bc8aafa1
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 15 additions and 3 deletions

View File

@ -389,9 +389,6 @@ class Godot(private val context: Context) : SensorEventListener {
GodotGLRenderView(host, this, xrMode, useDebugOpengl) GodotGLRenderView(host, this, xrMode, useDebugOpengl)
} }
renderView?.inputHandler?.enableLongPress(java.lang.Boolean.parseBoolean(GodotLib.getGlobal("input_devices/pointing/android/enable_long_press_as_right_click")))
renderView?.inputHandler?.enablePanningAndScalingGestures(java.lang.Boolean.parseBoolean(GodotLib.getGlobal("input_devices/pointing/android/enable_pan_and_scale_gestures")))
if (host == primaryHost) { if (host == primaryHost) {
renderView!!.startRenderer() renderView!!.startRenderer()
} }
@ -575,6 +572,19 @@ class Godot(private val context: Context) : SensorEventListener {
* Invoked on the render thread when the Godot setup is complete. * Invoked on the render thread when the Godot setup is complete.
*/ */
private fun onGodotSetupCompleted() { private fun onGodotSetupCompleted() {
Log.d(TAG, "OnGodotSetupCompleted")
// These properties are defined after Godot setup completion, so we retrieve them here.
val longPressEnabled = java.lang.Boolean.parseBoolean(GodotLib.getGlobal("input_devices/pointing/android/enable_long_press_as_right_click"))
val panScaleEnabled = java.lang.Boolean.parseBoolean(GodotLib.getGlobal("input_devices/pointing/android/enable_pan_and_scale_gestures"))
runOnUiThread {
renderView?.inputHandler?.apply {
enableLongPress(longPressEnabled)
enablePanningAndScalingGestures(panScaleEnabled)
}
}
for (plugin in pluginRegistry.allPlugins) { for (plugin in pluginRegistry.allPlugins) {
plugin.onGodotSetupCompleted() plugin.onGodotSetupCompleted()
} }
@ -585,6 +595,8 @@ class Godot(private val context: Context) : SensorEventListener {
* Invoked on the render thread when the Godot main loop has started. * Invoked on the render thread when the Godot main loop has started.
*/ */
private fun onGodotMainLoopStarted() { private fun onGodotMainLoopStarted() {
Log.d(TAG, "OnGodotMainLoopStarted")
for (plugin in pluginRegistry.allPlugins) { for (plugin in pluginRegistry.allPlugins) {
plugin.onGodotMainLoopStarted() plugin.onGodotMainLoopStarted()
} }