diff options
| -rw-r--r-- | services/core/jni/com_android_server_companion_virtual_InputController.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/services/core/jni/com_android_server_companion_virtual_InputController.cpp b/services/core/jni/com_android_server_companion_virtual_InputController.cpp index ad098b757eae..4cd018b0269e 100644 --- a/services/core/jni/com_android_server_companion_virtual_InputController.cpp +++ b/services/core/jni/com_android_server_companion_virtual_InputController.cpp @@ -144,12 +144,20 @@ static unique_fd openUinput(const char* readableName, jint vendorId, jint produc } uinput_abs_setup slotAbsSetup; slotAbsSetup.code = ABS_MT_SLOT; - slotAbsSetup.absinfo.maximum = MAX_POINTERS; + slotAbsSetup.absinfo.maximum = MAX_POINTERS - 1; slotAbsSetup.absinfo.minimum = 0; if (ioctl(fd, UI_ABS_SETUP, &slotAbsSetup) != 0) { ALOGE("Error creating touchscreen uinput slots: %s", strerror(errno)); return invalidFd(); } + uinput_abs_setup trackingIdAbsSetup; + trackingIdAbsSetup.code = ABS_MT_TRACKING_ID; + trackingIdAbsSetup.absinfo.maximum = MAX_POINTERS - 1; + trackingIdAbsSetup.absinfo.minimum = 0; + if (ioctl(fd, UI_ABS_SETUP, &trackingIdAbsSetup) != 0) { + ALOGE("Error creating touchscreen uinput tracking ids: %s", strerror(errno)); + return invalidFd(); + } } if (ioctl(fd, UI_DEV_SETUP, &setup) != 0) { ALOGE("Error creating uinput device: %s", strerror(errno)); |