Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d4044b43 authored by Zixuan Qu's avatar Zixuan Qu
Browse files

Add ABS_MT_SLOT config to virtual touch screen.

Bug: 244744917
Bug: 233960835
Bug: 233327669

Test: atest VirtualDeviceManagerServiceTest

Change-Id: I1ddf173880dc65c034ce7b6a2aef544f1233c361
parent e04e312e
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include <android/keycodes.h>
#include <errno.h>
#include <fcntl.h>
#include <input/Input.h>
#include <linux/uinput.h>
#include <math.h>
#include <nativehelper/JNIHelp.h>
@@ -271,6 +272,14 @@ static int openUinput(const char* readableName, jint vendorId, jint productId, c
                ALOGE("Error creating touchscreen uinput pressure axis: %s", strerror(errno));
                return -errno;
            }
            uinput_abs_setup slotAbsSetup;
            slotAbsSetup.code = ABS_MT_SLOT;
            slotAbsSetup.absinfo.maximum = MAX_POINTERS;
            slotAbsSetup.absinfo.minimum = 0;
            if (ioctl(fd, UI_ABS_SETUP, &slotAbsSetup) != 0) {
                ALOGE("Error creating touchscreen uinput slots: %s", strerror(errno));
                return -errno;
            }
        }
        if (ioctl(fd, UI_DEV_SETUP, &setup) != 0) {
            ALOGE("Error creating uinput device: %s", strerror(errno));