diff options
Diffstat (limited to 'platform/android/java/lib')
4 files changed, 21 insertions, 1 deletions
diff --git a/platform/android/java/lib/src/org/godotengine/godot/Godot.java b/platform/android/java/lib/src/org/godotengine/godot/Godot.java index 3bbe35091c..ad1dc53bc0 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/Godot.java +++ b/platform/android/java/lib/src/org/godotengine/godot/Godot.java @@ -988,4 +988,9 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC  	public void initInputDevices() {  		mRenderView.initInputDevices();  	} + +	@Keep +	private GodotRenderView getRenderView() { // used by native side to get renderView +		return mRenderView; +	}  } diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java b/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java index d731e080c4..2cd67933ee 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java +++ b/platform/android/java/lib/src/org/godotengine/godot/GodotGLRenderView.java @@ -144,6 +144,11 @@ public class GodotGLRenderView extends GLSurfaceView implements GodotRenderView  		return inputHandler.onGenericMotionEvent(event) || super.onGenericMotionEvent(event);  	} +	@Override +	public boolean onCapturedPointerEvent(MotionEvent event) { +		return inputHandler.onGenericMotionEvent(event); +	} +  	private void init(XRMode xrMode, boolean translucent, int depth, int stencil) {  		setPreserveEGLContextOnPause(true);  		setFocusableInTouchMode(true); diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java b/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java index 6cd5ca7b4e..d5e0345a9c 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java +++ b/platform/android/java/lib/src/org/godotengine/godot/GodotVulkanRenderView.java @@ -120,6 +120,11 @@ public class GodotVulkanRenderView extends VkSurfaceView implements GodotRenderV  	}  	@Override +	public boolean onCapturedPointerEvent(MotionEvent event) { +		return mInputHandler.onGenericMotionEvent(event); +	} + +	@Override  	public void onResume() {  		super.onResume(); diff --git a/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java b/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java index 6d5be312f1..b052cd9d92 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java +++ b/platform/android/java/lib/src/org/godotengine/godot/input/GodotInputHandler.java @@ -245,7 +245,7 @@ public class GodotInputHandler implements InputDeviceListener {  				}  			});  			return true; -		} else if ((event.getSource() & InputDevice.SOURCE_MOUSE) == InputDevice.SOURCE_MOUSE) { +		} else if (event.isFromSource(InputDevice.SOURCE_MOUSE) || event.isFromSource(InputDevice.SOURCE_MOUSE_RELATIVE)) {  			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {  				return handleMouseEvent(event);  			} @@ -462,6 +462,11 @@ public class GodotInputHandler implements InputDeviceListener {  					}  				});  			} +			case MotionEvent.ACTION_DOWN: +			case MotionEvent.ACTION_UP: { +				// we can safely ignore these cases because they are always come beside ACTION_BUTTON_PRESS and ACTION_BUTTON_RELEASE +				return true; +			}  		}  		return false;  	}  |