test: add an extra override hook for tablet motion
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 11 May 2023 03:51:25 +0000 (13:51 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Tue, 6 Jun 2023 23:23:05 +0000 (09:23 +1000)
Currently unused but it complements the existing override handlers.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
test/litest-int.h
test/litest.c

index be025995707671da8d92ca8593d4b8a99b4f2358..9226f57413a6cef5ffbd7d2c254e7be3c99e34e3 100644 (file)
@@ -125,6 +125,9 @@ struct litest_device_interface {
        bool (*tablet_tip_up)(struct litest_device *d,
                              double *x, double *y,
                              struct axis_replacement *axes);
+       bool (*tablet_motion)(struct litest_device *d,
+                             double *x, double *y,
+                             struct axis_replacement *axes);
 
        /**
         * Pad events, LITEST_AUTO_ASSIGN is allowed on event values
index 3cad525a645d2d8629806f52e321f7cbd6a2eecb..175d7f4213818a51e5c4d6dd24c6a186784ff88d 100644 (file)
@@ -2536,6 +2536,12 @@ litest_tablet_motion(struct litest_device *d,
 {
        struct input_event *ev;
 
+       /* If the test device overrides proximity_out and says it didn't
+        * handle the event, let's continue normally */
+       if (d->interface->tablet_motion &&
+           d->interface->tablet_motion(d, &x, &y, axes))
+               return;
+
        ev = d->interface->tablet_motion_events;
        while (ev && (int16_t)ev->type != -1 && (int16_t)ev->code != -1) {
                int value = auto_assign_tablet_value(d, ev, x, y, axes);