Add TW_IGNORE_MT_POSITION_0 touch flag
This fixes touch on the a11 when fastboot booting the image. We
are also adding event logging for ABS_MT_POSITION data which we
should have been logging before but for some reason we did not.
Change-Id: I1b38c31c716efdcbe48db4faa5d0cef97c91c58e
diff --git a/minuitwrp/Android.mk b/minuitwrp/Android.mk
index cf1eb5a..c4380aa 100644
--- a/minuitwrp/Android.mk
+++ b/minuitwrp/Android.mk
@@ -85,6 +85,10 @@
LOCAL_CFLAGS += -DTW_IGNORE_MAJOR_AXIS_0
endif
+ifeq ($(TW_IGNORE_MT_POSITION_0), true)
+LOCAL_CFLAGS += -DTW_IGNORE_MT_POSITION_0
+endif
+
ifneq ($(TW_INPUT_BLACKLIST),)
LOCAL_CFLAGS += -DTW_INPUT_BLACKLIST=$(TW_INPUT_BLACKLIST)
endif
diff --git a/minuitwrp/events.c b/minuitwrp/events.c
index 61fcf95..f02edd3 100644
--- a/minuitwrp/events.c
+++ b/minuitwrp/events.c
@@ -458,15 +458,27 @@
e->mt_p.synced = 0x03;
if (ev->value == (1 << 31))
{
+#ifndef TW_IGNORE_MT_POSITION_0
e->mt_p.x = 0;
e->mt_p.y = 0;
lastWasSynReport = 1;
+#endif
+#ifdef _EVENT_LOGGING
+#ifndef TW_IGNORE_MT_POSITION_0
+ printf("EV: %s => EV_ABS ABS_MT_POSITION %d, set x and y to 0 and lastWasSynReport to 1\n", e->deviceName, ev->value);
+#else
+ printf("Ignoring ABS_MT_POSITION 0\n", e->deviceName, ev->value);
+#endif
+#endif
}
else
{
lastWasSynReport = 0;
e->mt_p.x = (ev->value & 0x7FFF0000) >> 16;
e->mt_p.y = (ev->value & 0xFFFF);
+#ifdef _EVENT_LOGGING
+ printf("EV: %s => EV_ABS ABS_MT_POSITION %d, set x: %d and y: %d and lastWasSynReport to 0\n", e->deviceName, ev->value, (ev->value & 0x7FFF0000) >> 16, (ev->value & 0xFFFF));
+#endif
}
break;