Look also for buttons when checking if input device is mouse

* Some touchscreens have REL_* events

Signed-off-by: Vojtech Bocek <vbocek@gmail.com>

Change-Id: I332637ff58324895896ad09bf4ac08a2f127e49f
diff --git a/minuitwrp/events.c b/minuitwrp/events.c
index 94942ba..f07fc14 100644
--- a/minuitwrp/events.c
+++ b/minuitwrp/events.c
@@ -250,6 +250,9 @@
 #define OFF(x)  ((x)%BITS_PER_LONG)
 #define LONG(x) ((x)/BITS_PER_LONG)
 #define test_bit(bit, array)	((array[LONG(bit)] >> OFF(bit)) & 1)
+
+// Check for EV_REL (REL_X and REL_Y) and, because touchscreens can have those too,
+// check also for EV_KEY (BTN_LEFT and BTN_RIGHT)
 static void check_mouse(int fd)
 {
 	if(has_mouse)
@@ -259,12 +262,18 @@
 	memset(bit, 0, sizeof(bit));
 	ioctl(fd, EVIOCGBIT(0, EV_MAX), bit[0]);
 
-	if(!test_bit(EV_REL, bit[0]))
+	if(!test_bit(EV_REL, bit[0]) || !test_bit(EV_KEY, bit[0]))
 		return;
 
 	ioctl(fd, EVIOCGBIT(EV_REL, KEY_MAX), bit[EV_REL]);
-	if(test_bit(REL_X, bit[EV_REL]) && test_bit(REL_Y, bit[EV_REL]))
-		has_mouse = 1;
+	if(!test_bit(REL_X, bit[EV_REL]) || !test_bit(REL_Y, bit[EV_REL]))
+		return;
+
+	ioctl(fd, EVIOCGBIT(EV_KEY, KEY_MAX), bit[EV_KEY]);
+	if(!test_bit(BTN_LEFT, bit[EV_KEY]) || !test_bit(BTN_RIGHT, bit[EV_KEY]))
+		return;
+
+	has_mouse = 1;
 }
 
 int ev_has_mouse(void)