From 8a63b614955a726fc27c89bcf3699022214756d7 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 18 Feb 2022 17:07:23 -0600 Subject: [PATCH] Avoid touchscreens when looking for pointer capture capable devices --- .../capture/AndroidNativePointerCaptureProvider.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/com/limelight/binding/input/capture/AndroidNativePointerCaptureProvider.java b/app/src/main/java/com/limelight/binding/input/capture/AndroidNativePointerCaptureProvider.java index 7247effb..e87de022 100644 --- a/app/src/main/java/com/limelight/binding/input/capture/AndroidNativePointerCaptureProvider.java +++ b/app/src/main/java/com/limelight/binding/input/capture/AndroidNativePointerCaptureProvider.java @@ -39,6 +39,15 @@ public class AndroidNativePointerCaptureProvider extends AndroidPointerIconCaptu continue; } + // Skip touchscreens when considering compatible capture devices. + // Samsung devices on Android 12 will report a sec_touchpad device + // with SOURCE_TOUCHSCREEN, SOURCE_KEYBOARD, and SOURCE_MOUSE. + // Upon enabling pointer capture, that device will switch to + // SOURCE_KEYBOARD and SOURCE_TOUCHPAD. + if (device.supportsSource(InputDevice.SOURCE_TOUCHSCREEN)) { + continue; + } + if (device.supportsSource(InputDevice.SOURCE_MOUSE) || device.supportsSource(InputDevice.SOURCE_MOUSE_RELATIVE) || device.supportsSource(InputDevice.SOURCE_TOUCHPAD)) {