Lines Matching refs:dev
58 struct litest_device *dev = litest_current_device();
59 struct libinput *li = dev->libinput;
62 litest_disable_tap(dev->libinput_device);
63 litest_disable_hold_gestures(dev->libinput_device);
66 litest_touch_down(dev, 0, 50, 50);
67 litest_touch_move_to(dev, 0, 50, 50, 80, 50, 20);
68 litest_touch_up(dev, 0);
89 struct litest_device *dev = litest_current_device();
90 struct libinput *li = dev->libinput;
93 libinput_device_config_tap_set_enabled(dev->libinput_device,
98 litest_touch_down(dev, 0, 20, 20);
99 litest_touch_down(dev, 1, 70, 20);
100 litest_touch_move_two_touches(dev, 20, 20, 70, 20, 20, 30, 20);
101 litest_touch_up(dev, 1);
102 litest_touch_up(dev, 0);
117 test_2fg_scroll(struct litest_device *dev, double dx, double dy, bool want_sleep)
119 struct libinput *li = dev->libinput;
121 litest_touch_down(dev, 0, 49, 50);
122 litest_touch_down(dev, 1, 51, 50);
124 litest_touch_move_two_touches(dev, 49, 50, 51, 50, dx, dy, 10);
133 litest_touch_up(dev, 1);
134 litest_touch_up(dev, 0);
141 struct litest_device *dev = litest_current_device();
142 struct libinput *li = dev->libinput;
144 if (!litest_has_2fg_scroll(dev))
147 litest_enable_2fg_scroll(dev);
148 litest_disable_hold_gestures(dev->libinput_device);
151 test_2fg_scroll(dev, 0.1, 40, false);
156 test_2fg_scroll(dev, 0.1, -40, false);
161 test_2fg_scroll(dev, 40, 0.1, false);
166 test_2fg_scroll(dev, -40, 0.1, false);
173 test_2fg_scroll(dev, 0.1, 0.1, true);
180 struct litest_device *dev = litest_current_device();
181 struct libinput *li = dev->libinput;
189 if (!litest_has_2fg_scroll(dev))
192 ck_assert_int_eq(libinput_device_get_size(dev->libinput_device, &w, &h), 0);
194 litest_enable_2fg_scroll(dev);
197 litest_touch_down(dev, 0, 45, 30);
198 litest_touch_down(dev, 1, 55, 30);
202 litest_touch_move_two_touches(dev, 45, 30, 55, 30, 15, ydelta, 10);
211 litest_touch_move(dev, 0, 60, 30 + ydelta + (i * ratio));
217 litest_touch_move(dev, 0, 60, 30 + ydelta + i * ratio);
243 litest_touch_up(dev, 1);
244 litest_touch_up(dev, 0);
250 is_single_axis_2fg_scroll(struct litest_device *dev,
253 struct libinput *li = dev->libinput;
303 struct litest_device *dev = litest_current_device();
304 struct libinput *li = dev->libinput;
314 if (!litest_has_2fg_scroll(dev))
317 litest_enable_2fg_scroll(dev);
322 test_2fg_scroll(dev, delta[i][0], delta[i][1], false);
323 ck_assert(is_single_axis_2fg_scroll(dev, axis));
329 test_2fg_scroll(dev, delta[i][1], delta[i][0], false);
330 ck_assert(is_single_axis_2fg_scroll(dev, axis));
338 struct litest_device *dev = litest_current_device();
339 struct libinput *li = dev->libinput;
342 if (!litest_has_2fg_scroll(dev))
345 litest_enable_2fg_scroll(dev);
348 litest_touch_down(dev, 0, 20, 20);
349 litest_touch_down(dev, 1, 25, 20);
352 litest_touch_move_two_touches(dev, 20, 20, 25, 20, 55, 10, 15);
359 ck_assert(is_single_axis_2fg_scroll(dev, axis));
369 litest_touch_move_two_touches(dev, 75, 30, 80, 30, 2, 20, 15);
377 litest_touch_move_two_touches(dev, 77, 50, 82, 50, 1, 40, 15);
384 ck_assert(is_single_axis_2fg_scroll(dev, axis));
388 litest_touch_move_two_touches(dev, 78, 90, 83, 90, -60, -60, 20);
395 ck_assert(!is_single_axis_2fg_scroll(dev, axis));
397 litest_touch_up(dev, 1);
398 litest_touch_up(dev, 0);
406 struct litest_device *dev = litest_current_device();
407 struct libinput *li = dev->libinput;
413 if (!litest_has_2fg_scroll(dev))
420 ck_assert_int_eq(libinput_device_get_size(dev->libinput_device,
425 litest_enable_2fg_scroll(dev);
426 litest_disable_hold_gestures(dev->libinput_device);
429 litest_touch_down(dev, 0, 49, 50);
430 litest_touch_down(dev, 1, 51, 50);
431 litest_touch_move_two_touches(dev, 49, 50, 51, 50, 0, y_move, 100);
432 litest_touch_up(dev, 1);
433 litest_touch_up(dev, 0);
480 struct litest_device *dev = litest_current_device();
481 struct libinput *li = dev->libinput;
484 if (!litest_has_2fg_scroll(dev))
487 litest_enable_2fg_scroll(dev);
490 test_2fg_scroll(dev, 0, 30, false);
505 struct litest_device *dev = litest_current_device();
506 struct libinput *li = dev->libinput;
508 if (!litest_has_2fg_scroll(dev))
511 litest_enable_2fg_scroll(dev);
514 litest_touch_down(dev, 0, 20, 20);
515 litest_touch_down(dev, 1, 30, 20);
517 litest_touch_move_two_touches(dev,
529 struct litest_device *dev = litest_current_device();
530 struct libinput *li = dev->libinput;
532 if (!litest_has_2fg_scroll(dev))
535 litest_enable_2fg_scroll(dev);
539 litest_touch_down(dev, 0, 70, 70);
540 litest_touch_move_to(dev, 0, 70, 70, 49, 50, 10);
544 litest_touch_down(dev, 1, 51, 50);
545 litest_touch_move_two_touches(dev, 49, 50, 51, 50, 0, 20, 5);
546 litest_touch_up(dev, 1);
552 litest_touch_move_to(dev, 0, 49, 70, 49, 50, 10);
556 litest_touch_down(dev, 1, 51, 50);
557 litest_touch_move_two_touches(dev, 49, 50, 51, 50, 0, 20, 5);
558 litest_touch_up(dev, 0);
565 litest_touch_move_to(dev, 1, 51, 70, 51, 50, 10);
568 litest_touch_up(dev, 1);
575 struct litest_device *dev = litest_current_device();
576 struct libinput *li = dev->libinput;
578 if (!litest_has_2fg_scroll(dev) ||
579 !litest_has_btnareas(dev))
582 litest_enable_2fg_scroll(dev);
583 litest_enable_buttonareas(dev);
586 litest_touch_down(dev, 0, 30, 95);
587 litest_touch_down(dev, 1, 50, 95);
593 litest_touch_move(dev, 0, 30, 95 - i);
598 litest_touch_move(dev, 0, 30, 90 - i);
599 litest_touch_move(dev, 1, 50, 95 - i);
603 litest_touch_up(dev, 0);
604 litest_touch_up(dev, 1);
612 struct litest_device *dev = litest_current_device();
614 int enabled = libevdev_get_id_vendor(dev->evdev) == VENDOR_ID_APPLE;
616 ck_assert_int_ge(libinput_device_config_scroll_has_natural_scroll(dev->libinput_device), 1);
617 ck_assert_int_eq(libinput_device_config_scroll_get_natural_scroll_enabled(dev->libinput_device), enabled);
618 ck_assert_int_eq(libinput_device_config_scroll_get_default_natural_scroll_enabled(dev->libinput_device), enabled);
624 struct litest_device *dev = litest_current_device();
627 status = libinput_device_config_scroll_set_natural_scroll_enabled(dev->libinput_device, 1);
629 ck_assert_int_eq(libinput_device_config_scroll_get_natural_scroll_enabled(dev->libinput_device), 1);
631 status = libinput_device_config_scroll_set_natural_scroll_enabled(dev->libinput_device, 0);
633 ck_assert_int_eq(libinput_device_config_scroll_get_natural_scroll_enabled(dev->libinput_device), 0);
639 struct litest_device *dev = litest_current_device();
640 struct libinput *li = dev->libinput;
642 if (!litest_has_2fg_scroll(dev))
645 litest_enable_2fg_scroll(dev);
648 libinput_device_config_scroll_set_natural_scroll_enabled(dev->libinput_device, 1);
650 test_2fg_scroll(dev, 0.1, 40, false);
655 test_2fg_scroll(dev, 0.1, -40, false);
660 test_2fg_scroll(dev, 40, 0.1, false);
665 test_2fg_scroll(dev, -40, 0.1, false);
676 struct litest_device *dev = litest_current_device();
677 struct libinput *li = dev->libinput;
679 litest_enable_edge_scroll(dev);
682 libinput_device_config_scroll_set_natural_scroll_enabled(dev->libinput_device, 1);
684 litest_touch_down(dev, 0, 99, 20);
685 litest_touch_move_to(dev, 0, 99, 20, 99, 80, 10);
686 litest_touch_up(dev, 0);
695 litest_touch_down(dev, 0, 99, 80);
696 litest_touch_move_to(dev, 0, 99, 80, 99, 20, 10);
697 litest_touch_up(dev, 0);
711 struct litest_device *dev = litest_current_device();
712 struct libinput *li = dev->libinput;
714 litest_touch_down(dev, 0, 99, 20);
715 litest_touch_move_to(dev, 0, 99, 20, 99, 80, 10);
716 litest_touch_up(dev, 0);
719 litest_enable_edge_scroll(dev);
721 litest_touch_down(dev, 0, 99, 20);
722 litest_touch_move_to(dev, 0, 99, 20, 99, 80, 10);
723 litest_touch_up(dev, 0);
732 litest_touch_down(dev, 0, 99, 80);
733 litest_touch_move_to(dev, 0, 99, 80, 99, 20, 10);
734 litest_touch_up(dev, 0);
746 touchpad_has_horiz_edge_scroll_size(struct litest_device *dev)
751 rc = libinput_device_get_size(dev->libinput_device, &width, &height);
758 struct litest_device *dev = litest_current_device();
759 struct libinput *li = dev->libinput;
761 litest_touch_down(dev, 0, 99, 20);
762 litest_touch_move_to(dev, 0, 99, 20, 99, 80, 10);
763 litest_touch_up(dev, 0);
765 if (!touchpad_has_horiz_edge_scroll_size(dev))
769 litest_enable_edge_scroll(dev);
771 litest_touch_down(dev, 0, 20, 99);
772 litest_touch_move_to(dev, 0, 20, 99, 70, 99, 10);
773 litest_touch_up(dev, 0);
782 litest_touch_down(dev, 0, 70, 99);
783 litest_touch_move_to(dev, 0, 70, 99, 20, 99, 10);
784 litest_touch_up(dev, 0);
797 struct litest_device *dev = litest_current_device();
798 struct libinput *li = dev->libinput;
801 litest_enable_edge_scroll(dev);
803 litest_touch_down(dev, 0, 20, 99);
804 litest_touch_move_to(dev, 0, 20, 99, 70, 99, 15);
805 litest_touch_up(dev, 0);
814 litest_touch_down(dev, 0, 70, 99);
815 litest_touch_move_to(dev, 0, 70, 99, 20, 99, 15);
816 litest_touch_up(dev, 0);
829 struct litest_device *dev = litest_current_device();
830 struct libinput *li = dev->libinput;
832 if (touchpad_has_horiz_edge_scroll_size(dev))
836 litest_enable_edge_scroll(dev);
838 litest_touch_down(dev, 0, 20, 99);
839 litest_touch_move_to(dev, 0, 20, 99, 70, 99, 10);
840 litest_touch_up(dev, 0);
844 litest_touch_down(dev, 0, 70, 99);
845 litest_touch_move_to(dev, 0, 70, 99, 20, 99, 10);
846 litest_touch_up(dev, 0);
854 struct litest_device *dev = litest_current_device();
855 struct libinput_device *device = dev->libinput_device;
856 struct libevdev *evdev = dev->evdev;
862 (libevdev_get_id_vendor(dev->evdev) == VENDOR_ID_APPLE &&
863 libevdev_get_id_product(dev->evdev) == PRODUCT_ID_APPLE_APPLETOUCH))
898 struct litest_device *dev = litest_current_device();
899 struct libinput *li = dev->libinput;
905 ck_assert_int_eq(libinput_device_get_size(dev->libinput_device,
913 if (libinput_device_config_click_get_methods(dev->libinput_device) &
915 litest_enable_clickfinger(dev);
918 litest_enable_edge_scroll(dev);
922 litest_touch_down(dev, 0, 99, 20);
927 litest_touch_move_to(dev, 0, 99, 20, 99, 20 + mm/2, 8);
937 litest_touch_move_to(dev, 0, 99, 20 + mm/2, 99, 20 + mm * 2, 20);
938 litest_touch_up(dev, 0);
969 struct litest_device *dev = litest_current_device();
970 struct libinput *li = dev->libinput;
973 litest_enable_edge_scroll(dev);
975 litest_touch_down(dev, 0, 99, 10);
976 litest_touch_move_to(dev, 0, 99, 10, 99, 70, 12);
978 litest_touch_move_to(dev, 0, 99, 70, 20, 70, 12);
980 litest_touch_move_to(dev, 0, 20, 70, 40, 99, 12);
981 litest_touch_up(dev, 0);
994 struct litest_device *dev = litest_current_device();
995 struct libinput *li = dev->libinput;
998 litest_enable_edge_scroll(dev);
1001 litest_touch_down(dev, 0, 20, 20);
1002 litest_touch_move_to(dev, 0, 20, 20, 99, 20, 22);
1003 litest_touch_move_to(dev, 0, 99, 20, 99, 80, 22);
1004 litest_touch_up(dev, 0);
1014 struct litest_device *dev = litest_current_device();
1015 struct libinput *li = dev->libinput;
1019 litest_enable_edge_scroll(dev);
1021 litest_touch_down(dev, 0, 99, 20);
1022 litest_touch_move_to(dev, 0, 99, 20, 99, 80, 10);
1023 litest_touch_up(dev, 0);
1042 struct litest_device *dev = litest_current_device();
1043 struct libinput *li = dev->libinput;
1046 litest_enable_edge_scroll(dev);
1048 litest_touch_down(dev, 0, 49, 50);
1049 litest_touch_down(dev, 1, 51, 50);
1050 litest_touch_move_two_touches(dev, 49, 50, 51, 50, 20, 30, 10);
1052 litest_touch_up(dev, 0);
1053 litest_touch_up(dev, 1);
1062 struct litest_device *dev = litest_current_device();
1063 struct libinput *li = dev->libinput;
1065 litest_enable_buttonareas(dev);
1066 litest_enable_edge_scroll(dev);
1069 litest_touch_down(dev, 0, 99, 40);
1070 litest_touch_move_to(dev, 0, 99, 40, 99, 95, 10);
1073 litest_touch_move_to(dev, 0, 99, 95, 99, 100, 10);
1077 litest_touch_move_to(dev, 0, 99, 100, 99, 70, 10);
1081 litest_touch_move_to(dev, 0, 99, 70, 99, 50, 10);
1088 struct litest_device *dev = litest_current_device();
1089 struct libinput *li = dev->libinput;
1091 if (!touchpad_has_horiz_edge_scroll_size(dev))
1094 litest_enable_buttonareas(dev);
1095 litest_enable_edge_scroll(dev);
1098 litest_touch_down(dev, 0, 20, 99);
1101 litest_touch_move_to(dev, 0, 20, 99, 40, 99, 10);
1105 litest_touch_move_to(dev, 0, 40, 99, 60, 99, 10);
1109 litest_touch_move_to(dev, 0, 60, 99, 80, 99, 10);
1116 struct litest_device *dev = litest_current_device();
1117 struct libinput *li = dev->libinput;
1120 if (!touchpad_has_horiz_edge_scroll_size(dev))
1123 litest_enable_buttonareas(dev);
1124 litest_enable_edge_scroll(dev);
1127 litest_touch_down(dev, 0, 20, 95);
1128 litest_touch_move_to(dev, 0, 20, 95, 70, 95, 15);
1131 litest_button_click(dev, BTN_LEFT, true);
1153 litest_touch_move_to(dev, 0, 70, 95, 90, 95, 15);
1156 litest_button_click(dev, BTN_LEFT, false);
1160 litest_touch_up(dev, 0);
1166 struct litest_device *dev = litest_current_device();
1167 struct libinput *li = dev->libinput;
1170 if (!touchpad_has_horiz_edge_scroll_size(dev))
1173 litest_enable_clickfinger(dev);
1174 litest_enable_edge_scroll(dev);
1177 litest_touch_down(dev, 0, 20, 95);
1178 litest_touch_move_to(dev, 0, 20, 95, 70, 95, 15);
1181 litest_button_click(dev, BTN_LEFT, true);
1197 litest_touch_move_to(dev, 0, 70, 95, 90, 95, 15);
1201 litest_button_click(dev, BTN_LEFT, false);
1205 litest_touch_up(dev, 0);
1211 struct litest_device *dev = litest_current_device();
1212 struct libinput *li = dev->libinput;
1214 litest_enable_edge_scroll(dev);
1219 litest_touch_down(dev, 0, 99, 20);
1220 litest_touch_move_to(dev, 0, 99, 20, 99, 50, 15);
1221 litest_touch_move_to(dev, 0, 99, 50, 20, 50, 15);
1224 litest_touch_move_to(dev, 0, 20, 50, 20, 20, 15);
1225 litest_touch_move_to(dev, 0, 20, 20, 99, 20, 15);
1228 litest_touch_move_to(dev, 0, 99, 20, 99, 50, 15);
1234 touchpad_has_top_palm_detect_size(struct litest_device *dev)
1239 if (!litest_has_palm_detect_size(dev))
1242 rc = libinput_device_get_size(dev->libinput_device, &width, &height);
1249 struct litest_device *dev = litest_current_device();
1250 struct libinput *li = dev->libinput;
1252 if (!litest_has_palm_detect_size(dev) ||
1253 !litest_has_2fg_scroll(dev))
1256 litest_enable_2fg_scroll(dev);
1258 litest_disable_tap(dev->libinput_device);
1259 litest_disable_hold_gestures(dev->libinput_device);
1262 litest_touch_down(dev, 0, 99, 50);
1263 litest_touch_move_to(dev, 0, 99, 50, 99, 70, 5);
1264 litest_touch_up(dev, 0);
1268 litest_touch_down(dev, 0, 5, 50);
1269 litest_touch_move_to(dev, 0, 5, 50, 5, 70, 5);
1270 litest_touch_up(dev, 0);
1278 struct litest_device *dev = litest_current_device();
1279 struct libinput *li = dev->libinput;
1281 if (!touchpad_has_top_palm_detect_size(dev))
1284 litest_disable_tap(dev->libinput_device);
1285 litest_disable_hold_gestures(dev->libinput_device);
1288 litest_touch_down(dev, 0, 20, 1);
1289 litest_touch_move_to(dev, 0, 20, 1, 70, 1, 15);
1290 litest_touch_up(dev, 0);
1298 struct litest_device *dev = litest_current_device();
1299 struct libinput *li = dev->libinput;
1301 if (!litest_has_palm_detect_size(dev))
1304 litest_enable_edge_scroll(dev);
1308 litest_touch_down(dev, 0, 99, 50);
1309 litest_touch_move_to(dev, 0, 99, 50, 99, 70, 5);
1310 litest_touch_up(dev, 0);
1318 struct litest_device *dev = litest_current_device();
1319 struct libinput *li = dev->libinput;
1321 if (!litest_has_palm_detect_size(dev) ||
1322 !litest_has_2fg_scroll(dev))
1325 litest_enable_2fg_scroll(dev);
1327 litest_disable_tap(dev->libinput_device);
1328 litest_disable_hold_gestures(dev->libinput_device);
1334 litest_touch_down(dev, 0, 99, 95);
1335 litest_touch_move_to(dev, 0, 99, 95, 99, 99, 10);
1336 litest_touch_up(dev, 0);
1340 litest_touch_down(dev, 0, 5, 95);
1341 litest_touch_move_to(dev, 0, 5, 95, 5, 99, 5);
1342 litest_touch_up(dev, 0);
1348 struct litest_device *dev = litest_current_device();
1349 struct libinput *li = dev->libinput;
1351 if (!litest_has_palm_detect_size(dev) ||
1352 !litest_has_2fg_scroll(dev))
1355 litest_enable_2fg_scroll(dev);
1357 litest_disable_tap(dev->libinput_device);
1358 litest_disable_hold_gestures(dev->libinput_device);
1364 litest_touch_down(dev, 0, 99, 5);
1365 litest_touch_move_to(dev, 0, 99, 5, 99, 9, 10);
1366 litest_touch_up(dev, 0);
1370 litest_touch_down(dev, 0, 5, 5);
1371 litest_touch_move_to(dev, 0, 5, 5, 5, 9, 5);
1372 litest_touch_up(dev, 0);
1380 struct litest_device *dev = litest_current_device();
1381 struct libinput *li = dev->libinput;
1383 if (!litest_has_palm_detect_size(dev) ||
1384 !litest_has_2fg_scroll(dev))
1387 litest_enable_2fg_scroll(dev);
1389 litest_disable_tap(dev->libinput_device);
1390 litest_disable_hold_gestures(dev->libinput_device);
1393 litest_touch_down(dev, 0, 99, 20);
1394 litest_touch_move_to(dev, 0, 99, 20, 75, 99, 20);
1395 litest_touch_up(dev, 0);
1402 struct litest_device *dev = litest_current_device();
1403 struct libinput *li = dev->libinput;
1405 if (!touchpad_has_top_palm_detect_size(dev))
1408 litest_disable_tap(dev->libinput_device);
1409 litest_disable_hold_gestures(dev->libinput_device);
1412 litest_touch_down(dev, 0, 20, 1);
1413 litest_touch_move_to(dev, 0, 20, 1, 50, 30, 20);
1414 litest_touch_up(dev, 0);
1422 struct litest_device *dev = litest_current_device();
1423 struct libinput *li = dev->libinput;
1425 if (!litest_has_palm_detect_size(dev) ||
1426 !litest_has_2fg_scroll(dev))
1429 litest_enable_2fg_scroll(dev);
1431 litest_disable_tap(dev->libinput_device);
1432 litest_disable_hold_gestures(dev->libinput_device);
1435 litest_touch_down(dev, 0, 99, 50);
1436 litest_touch_move_to(dev, 0, 99, 50, 0, 70, 25);
1437 litest_touch_up(dev, 0);
1449 struct litest_device *dev = litest_current_device();
1450 struct libinput *li = dev->libinput;
1452 if (!touchpad_has_top_palm_detect_size(dev))
1455 litest_disable_tap(dev->libinput_device);
1456 litest_disable_hold_gestures(dev->libinput_device);
1459 litest_touch_down(dev, 0, 50, 1);
1460 litest_touch_move_to(dev, 0, 50, 1, 50, 60, 20);
1461 litest_touch_up(dev, 0);
1473 struct litest_device *dev = litest_current_device();
1474 struct libinput *li = dev->libinput;
1476 if (!litest_has_palm_detect_size(dev))
1479 litest_disable_tap(dev->libinput_device);
1480 litest_disable_hold_gestures(dev->libinput_device);
1485 litest_touch_down(dev, 0, 50, 50);
1486 litest_touch_move_to(dev, 0, 50, 50, 99, 50, 15);
1490 litest_touch_move_to(dev, 0, 99, 50, 99, 90, 15);
1495 litest_touch_up(dev, 0);
1503 struct litest_device *dev = litest_current_device();
1504 struct libinput *li = dev->libinput;
1506 if (!touchpad_has_top_palm_detect_size(dev))
1509 litest_disable_tap(dev->libinput_device);
1510 litest_disable_hold_gestures(dev->libinput_device);
1515 litest_touch_down(dev, 0, 50, 50);
1516 litest_touch_move_to(dev, 0, 50, 50, 0, 2, 15);
1520 litest_touch_move_to(dev, 0, 0, 2, 50, 50, 15);
1525 litest_touch_up(dev, 0);
1533 struct litest_device *dev = litest_current_device();
1534 struct libinput *li = dev->libinput;
1536 if (!touchpad_has_top_palm_detect_size(dev))
1539 litest_enable_tap(dev->libinput_device);
1540 litest_disable_hold_gestures(dev->libinput_device);
1543 litest_touch_down(dev, 0, 50, 1);
1544 litest_touch_up(dev, 0);
1554 struct litest_device *dev = litest_current_device();
1555 struct libinput *li = dev->libinput;
1557 if (!litest_has_palm_detect_size(dev))
1560 litest_enable_tap(dev->libinput_device);
1561 litest_disable_hold_gestures(dev->libinput_device);
1564 litest_touch_down(dev, 0, 95, 5);
1565 litest_touch_up(dev, 0);
1571 litest_touch_down(dev, 0, 5, 5);
1572 litest_touch_up(dev, 0);
1578 litest_touch_down(dev, 0, 5, 99);
1579 litest_touch_up(dev, 0);
1585 litest_touch_down(dev, 0, 95, 99);
1586 litest_touch_up(dev, 0);
1596 struct litest_device *dev = litest_current_device();
1597 struct libinput *li = dev->libinput;
1599 if (!litest_has_palm_detect_size(dev))
1602 litest_enable_tap(dev->libinput_device);
1603 litest_enable_buttonareas(dev);
1604 litest_disable_hold_gestures(dev->libinput_device);
1609 litest_touch_down(dev, 0, 99, 99);
1610 litest_touch_up(dev, 0);
1616 litest_touch_down(dev, 0, 1, 99);
1617 litest_touch_up(dev, 0);
1625 litest_touch_down(dev, 0, 10, 99);
1626 litest_touch_up(dev, 0);
1638 litest_touch_down(dev, 0, 90, 99);
1639 litest_touch_up(dev, 0);
1655 struct litest_device *dev = litest_current_device();
1656 struct libinput *li = dev->libinput;
1658 if (!litest_has_palm_detect_size(dev))
1661 litest_enable_tap(dev->libinput_device);
1662 litest_enable_clickfinger(dev);
1663 litest_disable_hold_gestures(dev->libinput_device);
1668 litest_touch_down(dev, 0, 95, 5);
1669 litest_touch_up(dev, 0);
1675 litest_touch_down(dev, 0, 5, 5);
1676 litest_touch_up(dev, 0);
1682 litest_touch_down(dev, 0, 5, 99);
1683 litest_touch_up(dev, 0);
1689 litest_touch_down(dev, 0, 95, 99);
1690 litest_touch_up(dev, 0);
1700 struct litest_device *dev = litest_current_device();
1701 struct libinput *li = dev->libinput;
1703 if (!litest_has_palm_detect_size(dev) ||
1704 !litest_has_2fg_scroll(dev))
1707 litest_enable_2fg_scroll(dev);
1713 litest_touch_down(dev, 0, 99, 50);
1714 litest_touch_move_to(dev, 0, 99, 50, 99, 40, 45);
1715 litest_touch_move_to(dev, 0, 99, 40, 99, 50, 45);
1717 litest_touch_down(dev, 1, 50, 50);
1720 litest_touch_move_two_touches(dev, 99, 50, 50, 50, 0, -20, 10);
1727 struct litest_device *dev = litest_current_device();
1728 struct libinput *li = dev->libinput;
1730 if (!litest_has_palm_detect_size(dev) ||
1731 !litest_has_2fg_scroll(dev))
1734 litest_enable_2fg_scroll(dev);
1740 litest_touch_down(dev, 0, 99, 50);
1741 litest_touch_move_to(dev, 0, 99, 50, 99, 40, 10);
1742 litest_touch_move_to(dev, 0, 99, 40, 99, 50, 10);
1745 litest_touch_down(dev, 1, 1, 50);
1746 litest_touch_move_to(dev, 1, 1, 50, 1, 40, 10);
1747 litest_touch_move_to(dev, 1, 1, 40, 1, 50, 10);
1750 litest_touch_move_two_touches(dev, 99, 50, 1, 50, 0, -20, 10);
1756 touchpad_has_tool_palm(struct litest_device *dev)
1758 return libevdev_has_event_code(dev->evdev, EV_ABS, ABS_MT_TOOL_TYPE);
1763 struct litest_device *dev = litest_current_device();
1764 struct libinput *li = dev->libinput;
1766 if (!touchpad_has_tool_palm(dev))
1769 litest_touch_down(dev, 0, 50, 50);
1770 litest_touch_move_to(dev, 0, 50, 50, 70, 70, 10);
1773 litest_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PALM);
1774 litest_event(dev, EV_SYN, SYN_REPORT, 0);
1775 litest_touch_move_to(dev, 0, 70, 70, 50, 40, 10);
1776 litest_touch_up(dev, 0);
1784 struct litest_device *dev = litest_current_device();
1785 struct libinput *li = dev->libinput;
1787 if (!touchpad_has_tool_palm(dev))
1790 litest_touch_down(dev, 0, 50, 50);
1791 litest_touch_move_to(dev, 0, 50, 50, 70, 70, 10);
1794 litest_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PALM);
1795 litest_event(dev, EV_SYN, SYN_REPORT, 0);
1796 litest_touch_move_to(dev, 0, 70, 70, 50, 40, 10);
1800 litest_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_FINGER);
1801 litest_event(dev, EV_SYN, SYN_REPORT, 0);
1802 litest_touch_move_to(dev, 0, 50, 40, 70, 70, 10);
1803 litest_touch_up(dev, 0);
1811 struct litest_device *dev = litest_current_device();
1812 struct libinput *li = dev->libinput;
1814 if (!touchpad_has_tool_palm(dev))
1817 litest_enable_tap(dev->libinput_device);
1818 litest_disable_hold_gestures(dev->libinput_device);
1821 litest_push_event_frame(dev);
1822 litest_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PALM);
1823 litest_touch_down(dev, 0, 50, 50);
1824 litest_pop_event_frame(dev);
1827 litest_touch_move_to(dev, 0, 50, 50, 50, 80, 10);
1832 litest_push_event_frame(dev);
1833 litest_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_FINGER);
1834 litest_touch_up(dev, 0);
1835 litest_pop_event_frame(dev);
1840 litest_touch_down(dev, 0, 50, 50);
1842 litest_touch_up(dev, 0);
1854 struct litest_device *dev = litest_current_device();
1855 struct libinput *li = dev->libinput;
1857 if (!touchpad_has_tool_palm(dev))
1860 litest_enable_tap(dev->libinput_device);
1861 litest_disable_hold_gestures(dev->libinput_device);
1864 litest_push_event_frame(dev);
1865 litest_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PALM);
1866 litest_touch_down(dev, 0, 50, 50);
1867 litest_pop_event_frame(dev);
1871 litest_touch_up(dev, 0);
1880 touchpad_has_palm_pressure(struct litest_device *dev)
1882 struct libevdev *evdev = dev->evdev;
1884 if (dev->which == LITEST_SYNAPTICS_PRESSUREPAD)
1896 struct litest_device *dev = litest_current_device();
1897 struct libinput *li = dev->libinput;
1903 if (!touchpad_has_palm_pressure(dev))
1906 litest_disable_tap(dev->libinput_device);
1907 litest_disable_hold_gestures(dev->libinput_device);
1910 litest_touch_down_extended(dev, 0, 50, 99, axes);
1911 litest_touch_move_to(dev, 0, 50, 50, 80, 99, 10);
1912 litest_touch_up(dev, 0);
1920 struct litest_device *dev = litest_current_device();
1921 struct libinput *li = dev->libinput;
1927 if (!touchpad_has_palm_pressure(dev))
1930 litest_enable_tap(dev->libinput_device);
1931 litest_enable_clickfinger(dev);
1932 litest_disable_hold_gestures(dev->libinput_device);
1936 litest_touch_down(dev, 0, 50, 80);
1937 litest_touch_move_extended(dev, 0, 51, 99, axes);
1938 litest_touch_up(dev, 0);
1944 litest_touch_down(dev, 0, 50, 99);
1945 litest_touch_up(dev, 0);
1954 struct litest_device *dev = litest_current_device();
1955 struct libinput *li = dev->libinput;
1961 if (!touchpad_has_palm_pressure(dev))
1964 litest_enable_tap(dev->libinput_device);
1965 litest_enable_clickfinger(dev);
1966 litest_disable_hold_gestures(dev->libinput_device);
1970 litest_touch_down(dev, 0, 50, 99);
1974 litest_touch_move_extended(dev, 0, 51, 99, axes);
1975 litest_touch_up(dev, 0);
1979 litest_touch_down(dev, 0, 50, 99);
1980 litest_touch_up(dev, 0);
1989 struct litest_device *dev = litest_current_device();
1990 struct libinput *li = dev->libinput;
1996 if (!touchpad_has_palm_pressure(dev))
1999 litest_enable_tap(dev->libinput_device);
2000 litest_enable_clickfinger(dev);
2001 litest_disable_hold_gestures(dev->libinput_device);
2005 litest_touch_down(dev, 0, 50, 99);
2009 litest_touch_move_extended(dev, 0, 51, 99, axes);
2014 litest_touch_down(dev, 1, 60, 50);
2017 litest_touch_up(dev, 0);
2024 litest_touch_up(dev, 1);
2028 litest_touch_down(dev, 0, 50, 99);
2029 litest_touch_up(dev, 0);
2038 struct litest_device *dev = litest_current_device();
2039 struct libinput *li = dev->libinput;
2045 if (!touchpad_has_palm_pressure(dev))
2048 litest_enable_tap(dev->libinput_device);
2049 litest_disable_hold_gestures(dev->libinput_device);
2053 litest_touch_down(dev, 0, 50, 99);
2054 litest_touch_move(dev, 0, 51, 99);
2055 litest_touch_move_extended(dev, 0, 55, 99, axes);
2061 litest_touch_down(dev, 1, 50, 50);
2062 litest_touch_up(dev, 1);
2078 struct litest_device *dev = litest_current_device();
2079 struct libinput *li = dev->libinput;
2085 if (!touchpad_has_palm_pressure(dev))
2088 litest_disable_tap(dev->libinput_device);
2089 litest_disable_hold_gestures(dev->libinput_device);
2092 litest_touch_down(dev, 0, 50, 50);
2093 litest_touch_move_to(dev, 0, 50, 70, 80, 90, 10);
2096 litest_touch_move_to_extended(dev, 0, 80, 90, 50, 20, axes, 10);
2097 litest_touch_up(dev, 0);
2105 struct litest_device *dev = litest_current_device();
2106 struct libinput *li = dev->libinput;
2112 if (!touchpad_has_palm_pressure(dev))
2115 litest_disable_tap(dev->libinput_device);
2116 litest_disable_hold_gestures(dev->libinput_device);
2119 litest_touch_down(dev, 0, 80, 90);
2120 litest_touch_move_to_extended(dev, 0, 80, 90, 50, 20, axes, 10);
2121 litest_touch_move_to(dev, 0, 50, 20, 80, 90, 10);
2122 litest_touch_up(dev, 0);
2130 struct litest_device *dev = litest_current_device();
2131 struct libinput *li = dev->libinput;
2137 if (!touchpad_has_palm_pressure(dev) ||
2138 !litest_has_palm_detect_size(dev) ||
2139 !litest_has_2fg_scroll(dev))
2142 litest_enable_2fg_scroll(dev);
2143 litest_disable_tap(dev->libinput_device);
2144 litest_disable_hold_gestures(dev->libinput_device);
2147 litest_touch_down(dev, 0, 99, 50);
2148 litest_touch_move_to_extended(dev, 0, 99, 50, 20, 50, axes, 20);
2149 litest_touch_up(dev, 0);
2199 struct litest_device *dev = litest_current_device();
2200 struct libinput *li = dev->libinput;
2206 litest_disable_tap(dev->libinput_device);
2207 litest_disable_hold_gestures(dev->libinput_device);
2210 litest_touch_down_extended(dev, 0, 50, 99, axes);
2211 litest_touch_move_to(dev, 0, 50, 50, 80, 99, 10);
2212 litest_touch_up(dev, 0);
2221 struct litest_device *dev = litest_current_device();
2222 struct libinput *li = dev->libinput;
2228 if (!touchpad_has_palm_pressure(dev))
2231 litest_enable_clickfinger(dev);
2232 litest_disable_tap(dev->libinput_device);
2233 litest_disable_hold_gestures(dev->libinput_device);
2236 litest_touch_down_extended(dev, 0, 50, 95, axes);
2237 litest_touch_down(dev, 1, 50, 50);
2238 litest_button_click(dev, BTN_LEFT, true);
2239 litest_button_click(dev, BTN_LEFT, false);
2241 litest_touch_up(dev, 1);
2242 litest_touch_up(dev, 0);
2252 struct litest_device *dev = litest_current_device();
2253 struct libinput *li = dev->libinput;
2259 if (!touchpad_has_palm_pressure(dev))
2262 if (libevdev_get_num_slots(dev->evdev) < 3)
2265 litest_enable_clickfinger(dev);
2266 litest_disable_tap(dev->libinput_device);
2267 litest_disable_hold_gestures(dev->libinput_device);
2270 litest_touch_down_extended(dev, 0, 50, 95, axes);
2271 litest_touch_down(dev, 1, 50, 50);
2272 litest_touch_down(dev, 2, 50, 60);
2273 litest_button_click(dev, BTN_LEFT, true);
2274 litest_button_click(dev, BTN_LEFT, false);
2276 litest_touch_up(dev, 1);
2277 litest_touch_up(dev, 2);
2278 litest_touch_up(dev, 0);
2288 touchpad_has_touch_size(struct litest_device *dev)
2290 struct libevdev *evdev = dev->evdev;
2303 struct litest_device *dev = litest_current_device();
2304 struct libinput *li = dev->libinput;
2312 if (!touchpad_has_touch_size(dev))
2315 litest_enable_clickfinger(dev);
2316 litest_disable_tap(dev->libinput_device);
2317 litest_disable_hold_gestures(dev->libinput_device);
2320 litest_touch_down_extended(dev, 0, 50, 95, axes);
2321 litest_touch_down(dev, 1, 50, 50);
2322 litest_button_click(dev, BTN_LEFT, true);
2323 litest_button_click(dev, BTN_LEFT, false);
2325 litest_touch_up(dev, 1);
2326 litest_touch_up(dev, 0);
2336 struct litest_device *dev = litest_current_device();
2337 struct libinput *li = dev->libinput;
2345 if (!touchpad_has_touch_size(dev))
2348 if (libevdev_get_num_slots(dev->evdev) < 3)
2351 litest_enable_clickfinger(dev);
2352 litest_disable_tap(dev->libinput_device);
2353 litest_disable_hold_gestures(dev->libinput_device);
2356 litest_touch_down_extended(dev, 0, 50, 95, axes);
2357 litest_touch_down(dev, 1, 50, 50);
2358 litest_touch_down(dev, 2, 50, 60);
2359 litest_button_click(dev, BTN_LEFT, true);
2360 litest_button_click(dev, BTN_LEFT, false);
2362 litest_touch_up(dev, 1);
2363 litest_touch_up(dev, 2);
2364 litest_touch_up(dev, 0);
2374 struct litest_device *dev = litest_current_device();
2375 struct libinput_device *d = dev->libinput_device;
2376 struct libinput *li = dev->libinput;
2379 if (libevdev_get_id_vendor(dev->evdev) == VENDOR_ID_APPLE &&
2380 libevdev_get_id_product(dev->evdev) == PRODUCT_ID_APPLE_APPLETOUCH)
2387 litest_button_click(dev, BTN_LEFT, 1);
2388 litest_button_click(dev, BTN_LEFT, 0);
2397 litest_button_click(dev, BTN_RIGHT, 1);
2398 litest_button_click(dev, BTN_RIGHT, 0);
2406 if (libevdev_has_event_code(dev->evdev,
2409 litest_button_click(dev, BTN_MIDDLE, 1);
2410 litest_button_click(dev, BTN_MIDDLE, 0);
2423 struct litest_device *dev = litest_current_device();
2424 struct libinput_device *d = dev->libinput_device;
2436 struct litest_device *dev = litest_current_device();
2437 struct libinput_device *d = dev->libinput_device;
2438 struct libinput *li = dev->libinput;
2448 litest_touch_down(dev, 0, 10, 90);
2449 litest_button_click(dev, BTN_LEFT, 1);
2450 litest_button_click(dev, BTN_LEFT, 0);
2451 litest_touch_up(dev, 0);
2461 litest_touch_down(dev, 0, 90, 90);
2462 litest_button_click(dev, BTN_LEFT, 1);
2463 litest_button_click(dev, BTN_LEFT, 0);
2464 litest_touch_up(dev, 0);
2474 litest_touch_down(dev, 0, 50, 50);
2475 litest_button_click(dev, BTN_LEFT, 1);
2476 litest_button_click(dev, BTN_LEFT, 0);
2477 litest_touch_up(dev, 0);
2490 struct litest_device *dev = litest_current_device();
2491 struct libinput_device *d = dev->libinput_device;
2492 struct libinput *li = dev->libinput;
2502 litest_touch_down(dev, 0, 10, 90);
2503 litest_button_click(dev, BTN_LEFT, 1);
2504 litest_button_click(dev, BTN_LEFT, 0);
2505 litest_touch_up(dev, 0);
2516 litest_touch_down(dev, 0, 10, 90);
2517 litest_touch_down(dev, 1, 30, 90);
2518 litest_button_click(dev, BTN_LEFT, 1);
2519 litest_button_click(dev, BTN_LEFT, 0);
2520 litest_touch_up(dev, 0);
2521 litest_touch_up(dev, 1);
2534 struct litest_device *dev = litest_current_device();
2535 struct libinput_device *d = dev->libinput_device;
2536 struct libinput *li = dev->libinput;
2542 litest_enable_tap(dev->libinput_device);
2543 litest_disable_hold_gestures(dev->libinput_device);
2550 litest_touch_down(dev, 0, 50, 50);
2551 litest_touch_up(dev, 0);
2569 struct litest_device *dev = litest_current_device();
2570 struct libinput_device *d = dev->libinput_device;
2571 struct libinput *li = dev->libinput;
2577 litest_enable_tap(dev->libinput_device);
2578 litest_disable_hold_gestures(dev->libinput_device);
2585 litest_touch_down(dev, 0, 50, 50);
2586 litest_touch_down(dev, 1, 70, 50);
2587 litest_touch_up(dev, 1);
2588 litest_touch_up(dev, 0);
2606 struct litest_device *dev = litest_current_device();
2607 struct libinput_device *d = dev->libinput_device;
2608 struct libinput *li = dev->libinput;
2615 litest_button_click(dev, BTN_LEFT, 1);
2621 litest_button_click(dev, BTN_LEFT, 0);
2631 litest_button_click(dev, BTN_RIGHT, 1);
2635 litest_button_click(dev, BTN_LEFT, 1);
2641 litest_button_click(dev, BTN_RIGHT, 0);
2642 litest_button_click(dev, BTN_LEFT, 0);
2661 struct litest_device *dev = litest_current_device();
2662 struct libinput_device *d = dev->libinput_device;
2663 struct libinput *li = dev->libinput;
2670 litest_touch_down(dev, 0, 10, 90);
2671 litest_button_click(dev, BTN_LEFT, 1);
2677 litest_button_click(dev, BTN_LEFT, 0);
2678 litest_touch_up(dev, 0);
2689 litest_touch_down(dev, 0, 90, 90);
2690 litest_button_click(dev, BTN_LEFT, 1);
2696 litest_button_click(dev, BTN_LEFT, 0);
2697 litest_touch_up(dev, 0);
2719 struct litest_device *dev = litest_current_device();
2720 struct libinput_device *d = dev->libinput_device;
2721 struct libinput *li = dev->libinput;
2724 bool rotate = touchpad_has_rotation(dev->evdev);
2734 litest_touch_down(dev, 0, 20, 80);
2735 litest_touch_move_to(dev, 0, 20, 80, 80, 20, 20);
2736 litest_touch_up(dev, 0);
2771 hover_continue(struct litest_device *dev, unsigned int slot,
2774 litest_event(dev, EV_ABS, ABS_MT_SLOT, slot);
2775 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x);
2776 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y);
2777 litest_event(dev, EV_ABS, ABS_X, x);
2778 litest_event(dev, EV_ABS, ABS_Y, y);
2779 litest_event(dev, EV_ABS, ABS_PRESSURE, 10);
2780 litest_event(dev, EV_ABS, ABS_TOOL_WIDTH, 6);
2785 hover_start(struct litest_device *dev, unsigned int slot,
2790 litest_event(dev, EV_ABS, ABS_MT_SLOT, slot);
2791 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, ++tracking_id);
2792 hover_continue(dev, slot, x, y);
2798 struct litest_device *dev = litest_current_device();
2799 struct libinput *li = dev->libinput;
2806 hover_start(dev, 0, x, y);
2807 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 1);
2808 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2813 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x);
2814 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y);
2815 litest_event(dev, EV_ABS, ABS_X, x);
2816 litest_event(dev, EV_ABS, ABS_Y, y);
2817 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2820 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
2821 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2829 struct litest_device *dev = litest_current_device();
2830 struct libinput *li = dev->libinput;
2838 hover_start(dev, 0, x, y);
2839 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 1);
2840 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2845 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x);
2846 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y);
2847 litest_event(dev, EV_ABS, ABS_X, x);
2848 litest_event(dev, EV_ABS, ABS_Y, y);
2849 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2854 litest_event(dev, EV_ABS, ABS_X, x + 100);
2855 litest_event(dev, EV_ABS, ABS_Y, y + 100);
2856 litest_event(dev, EV_ABS, ABS_PRESSURE, 50);
2857 litest_event(dev, EV_KEY, BTN_TOUCH, 1);
2858 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2863 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x);
2864 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y);
2865 litest_event(dev, EV_ABS, ABS_X, x);
2866 litest_event(dev, EV_ABS, ABS_Y, y);
2867 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2882 hover_continue(dev, 0, x, y);
2883 litest_event(dev, EV_ABS, ABS_PRESSURE, 0);
2884 litest_event(dev, EV_KEY, BTN_TOUCH, 0);
2885 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2890 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x);
2891 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y);
2892 litest_event(dev, EV_ABS, ABS_X, x);
2893 litest_event(dev, EV_ABS, ABS_Y, y);
2894 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2897 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
2898 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2906 struct litest_device *dev = litest_current_device();
2907 struct libinput *li = dev->libinput;
2915 hover_start(dev, 0, x, y);
2916 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 1);
2917 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2922 litest_event(dev, EV_ABS, ABS_X, x + 100);
2923 litest_event(dev, EV_ABS, ABS_Y, y + 100);
2924 litest_event(dev, EV_ABS, ABS_PRESSURE, 50);
2925 litest_event(dev, EV_KEY, BTN_TOUCH, 1);
2926 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2932 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x);
2933 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y);
2934 litest_event(dev, EV_ABS, ABS_X, x);
2935 litest_event(dev, EV_ABS, ABS_Y, y);
2936 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2945 hover_continue(dev, 0, x, y);
2946 litest_event(dev, EV_ABS, ABS_PRESSURE, 0);
2947 litest_event(dev, EV_KEY, BTN_TOUCH, 0);
2948 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2953 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x);
2954 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y);
2955 litest_event(dev, EV_ABS, ABS_X, x);
2956 litest_event(dev, EV_ABS, ABS_Y, y);
2957 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2964 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
2965 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2970 litest_push_event_frame(dev);
2971 litest_touch_down(dev, 0, 50, 50);
2972 litest_event(dev, EV_ABS, ABS_PRESSURE, 50);
2973 litest_pop_event_frame(dev);
2974 litest_touch_move_to(dev, 0, 50, 50, 70, 70, 10);
2975 litest_touch_up(dev, 0);
2985 struct litest_device *dev = litest_current_device();
2986 struct libinput *li = dev->libinput;
2994 hover_start(dev, 0, x, y);
2995 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 1);
2996 litest_event(dev, EV_SYN, SYN_REPORT, 0);
2999 hover_start(dev, 1, x, y);
3000 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
3001 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 1);
3002 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3005 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
3006 litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 1);
3007 litest_event(dev, EV_KEY, BTN_TOUCH, 1);
3008 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3013 litest_event(dev, EV_ABS, ABS_MT_SLOT, 1);
3014 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
3015 litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 0);
3016 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 1);
3017 litest_event(dev, EV_KEY, BTN_TOUCH, 0);
3018 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3022 litest_event(dev, EV_ABS, ABS_PRESSURE, 50);
3023 litest_event(dev, EV_KEY, BTN_TOUCH, 1);
3024 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3029 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
3030 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x);
3031 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y);
3032 litest_event(dev, EV_ABS, ABS_X, x);
3033 litest_event(dev, EV_ABS, ABS_Y, y);
3034 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3041 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
3042 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
3043 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
3044 litest_event(dev, EV_KEY, BTN_TOUCH, 0);
3045 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3052 struct litest_device *dev = litest_current_device();
3053 struct libinput *li = dev->libinput;
3060 hover_start(dev, 0, x, y);
3061 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 1);
3062 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3064 hover_start(dev, 1, x + 500, y + 500);
3065 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
3066 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 1);
3067 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3072 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
3073 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x);
3074 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y);
3075 litest_event(dev, EV_ABS, ABS_MT_SLOT, 1);
3076 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x + 500);
3077 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y + 500);
3078 litest_event(dev, EV_ABS, ABS_X, x);
3079 litest_event(dev, EV_ABS, ABS_Y, y);
3080 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3083 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
3084 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3088 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
3089 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3097 struct litest_device *dev = litest_current_device();
3098 struct libinput *li = dev->libinput;
3106 hover_start(dev, 0, x, y);
3107 hover_start(dev, 1, x + 500, y + 500);
3108 litest_event(dev, EV_ABS, ABS_PRESSURE, 50);
3109 litest_event(dev, EV_KEY, BTN_TOUCH, 1);
3110 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 1);
3111 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3116 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
3117 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x);
3118 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y);
3119 litest_event(dev, EV_ABS, ABS_MT_SLOT, 1);
3120 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, x + 500);
3121 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, y + 500);
3122 litest_event(dev, EV_ABS, ABS_X, x);
3123 litest_event(dev, EV_ABS, ABS_Y, y);
3124 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3127 litest_event(dev, EV_ABS, ABS_PRESSURE, 0);
3128 litest_event(dev, EV_KEY, BTN_TOUCH, 0);
3129 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
3130 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3140 struct litest_device *dev = litest_current_device();
3141 struct libinput *li = dev->libinput;
3143 litest_touch_down(dev, 0, 70, 50);
3144 litest_touch_down(dev, 1, 50, 50);
3146 litest_push_event_frame(dev);
3147 litest_touch_move(dev, 0, 72, 50);
3148 litest_touch_move(dev, 1, 52, 50);
3149 litest_event(dev, EV_ABS, ABS_PRESSURE, 0);
3150 litest_event(dev, EV_KEY, BTN_TOUCH, 0);
3151 litest_pop_event_frame(dev);
3153 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
3154 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
3155 litest_event(dev, EV_ABS, ABS_MT_SLOT, 1);
3156 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
3157 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
3158 litest_event(dev, EV_SYN, SYN_REPORT, 0);
3166 struct litest_device *dev = litest_current_device();
3167 struct libinput *li = dev->libinput;
3171 litest_hover_start(dev, 0, 50, 50);
3172 litest_hover_move_to(dev, 0, 50, 50, 70, 70, 10);
3173 litest_hover_end(dev, 0);
3181 struct litest_device *dev = litest_current_device();
3182 struct libinput *li = dev->libinput;
3187 litest_hover_start(dev, 0, 50, 50);
3189 litest_hover_move_to(dev, 0, 50, 50, 70, 70, 10);
3194 litest_touch_move_to(dev, 0, 70, 70, 50, 50, 10);
3201 litest_hover_move_to(dev, 0, 50, 50, 70, 70, 10);
3202 litest_hover_end(dev, 0);
3210 struct litest_device *dev = litest_current_device();
3211 struct libinput *li = dev->libinput;
3216 litest_hover_start(dev, 0, 50, 50);
3221 litest_hover_move_to(dev, 0, 50, 50, 70, 70, 10);
3226 litest_touch_move_to(dev, 0, 70, 70, 50, 50, 10);
3234 litest_hover_end(dev, 0);
3237 litest_touch_down(dev, 0, 50, 50);
3238 litest_touch_move_to(dev, 0, 50, 50, 70, 70, 10);
3239 litest_touch_up(dev, 0);
3247 struct litest_device *dev = litest_current_device();
3248 struct libinput *li = dev->libinput;
3253 litest_push_event_frame(dev);
3254 litest_hover_start(dev, 0, 50, 50);
3255 litest_hover_start(dev, 1, 50, 50);
3256 litest_touch_down(dev, 2, 50, 50);
3257 litest_pop_event_frame(dev);
3262 litest_push_event_frame(dev);
3263 litest_hover_move(dev, 0, 55, 55);
3264 litest_hover_end(dev, 1);
3265 litest_touch_up(dev, 2);
3266 litest_pop_event_frame(dev);
3271 litest_touch_move_to(dev, 0, 50, 50, 70, 70, 10);
3273 litest_touch_up(dev, 0);
3281 struct litest_device *dev = litest_current_device();
3282 struct libinput *li = dev->libinput;
3287 litest_push_event_frame(dev);
3288 litest_hover_start(dev, 0, 25, 25);
3289 litest_hover_start(dev, 1, 50, 50);
3290 litest_pop_event_frame(dev);
3292 litest_hover_move_two_touches(dev, 25, 25, 50, 50, 50, 50, 10);
3294 litest_push_event_frame(dev);
3295 litest_hover_end(dev, 0);
3296 litest_hover_end(dev, 1);
3297 litest_pop_event_frame(dev);
3305 struct litest_device *dev = litest_current_device();
3306 struct libinput *li = dev->libinput;
3312 litest_push_event_frame(dev);
3313 litest_hover_start(dev, 0, 25, 25);
3314 litest_touch_down(dev, 1, 50, 50);
3315 litest_pop_event_frame(dev);
3318 litest_push_event_frame(dev);
3319 litest_hover_move(dev, 0, 25 + 5 * i, 25 + 5 * i);
3320 litest_touch_move(dev, 1, 50 + 5 * i, 50 - 5 * i);
3321 litest_pop_event_frame(dev);
3324 litest_push_event_frame(dev);
3325 litest_hover_end(dev, 0);
3326 litest_touch_up(dev, 1);
3327 litest_pop_event_frame(dev);
3335 struct litest_device *dev = litest_current_device();
3336 struct libinput *li = dev->libinput;
3338 litest_enable_tap(dev->libinput_device);
3339 litest_disable_hold_gestures(dev->libinput_device);
3342 litest_hover_start(dev, 0, 50, 50);
3343 litest_hover_end(dev, 0);
3630 struct litest_device *dev;
3635 dev = litest_current_device();
3636 libinput1 = dev->libinput;
3638 litest_disable_tap(dev->libinput_device);
3639 litest_disable_hold_gestures(dev->libinput_device);
3641 litest_touch_down(dev, 0, x, y);
3642 litest_touch_up(dev, 0);
3649 libevdev_uinput_get_devnode(dev->uinput));
3656 litest_touch_down(dev, 0, x, y);
3657 litest_touch_move_to(dev, 0, x, y, 70, 70, 10);
3658 litest_touch_up(dev, 0);
3692 struct litest_device *dev = litest_current_device();
3700 if (!libevdev_has_event_code(dev->evdev, EV_KEY, map[finger_count]))
3705 if (litest_slot_count(dev) >= finger_count) {
3706 litest_touch_down(dev, i, 20 + 10 * i, 30);
3708 litest_event(dev, EV_KEY, map[finger_count], 1);
3712 litest_drain_events(dev->libinput);
3717 libevdev_uinput_get_devnode(dev->uinput));
3722 if (litest_slot_count(dev) < finger_count)
3724 litest_touch_move(dev, i, 20 + 10 * i + x, 30);
3731 if (litest_slot_count(dev) >= finger_count) {
3732 litest_touch_up(dev, i);
3734 litest_event(dev, EV_KEY, map[finger_count], 0);
3765 struct litest_device *dev = litest_current_device();
3766 struct libinput *li = dev->libinput;
3769 litest_disable_tap(dev->libinput_device);
3770 litest_disable_hold_gestures(dev->libinput_device);
3772 litest_touch_down(dev, 0, 10, 10);
3777 litest_touch_move(dev, 0, 10 + 0.1 * i, 10 + 0.1 * i);
3780 litest_touch_up(dev, 0);
3781 litest_touch_down(dev, 0, 50, 50);
3782 litest_touch_down(dev, 1, 70, 50);
3787 litest_touch_up(dev, 0);
3788 litest_touch_up(dev, 1);
3791 litest_touch_down(dev, 0, 50, 50);
3792 litest_touch_down(dev, 1, 70, 50);
3793 litest_touch_move_two_touches(dev, 50, 50, 70, 50, 0, -20, 10);
3794 litest_touch_up(dev, 0);
3795 litest_touch_up(dev, 1);
3799 litest_touch_down(dev, 0, 50, 50);
3801 litest_touch_move(dev, 0, 10 + 0.1 * i, 10 + 0.1 * i);
3802 litest_touch_up(dev, 0);
4654 struct litest_device *dev = litest_current_device();
4655 struct libinput_device *device = dev->libinput_device;
4659 if (libevdev_get_id_vendor(dev->evdev) == VENDOR_ID_WACOM ||
4660 libevdev_get_id_bustype(dev->evdev) == BUS_BLUETOOTH) {
4685 struct litest_device *dev = litest_current_device();
4686 struct libinput_device *device = dev->libinput_device;
4690 if (litest_touchpad_is_external(dev)) {
4715 struct litest_device *dev = litest_current_device();
4716 struct libinput_device *device = dev->libinput_device;
4740 struct litest_device *dev = litest_current_device();
4741 struct libinput_device *device = dev->libinput_device;
4764 disable_dwt(struct litest_device *dev)
4768 status = libinput_device_config_dwt_set_enabled(dev->libinput_device,
4774 enable_dwt(struct litest_device *dev)
4778 status = libinput_device_config_dwt_set_enabled(dev->libinput_device,
5331 has_thumb_detect(struct litest_device *dev)
5335 if (libinput_device_get_size(dev->libinput_device, &w, &h) != 0)
5343 struct litest_device *dev = litest_current_device();
5344 struct libinput *li = dev->libinput;
5346 if (!has_thumb_detect(dev))
5349 litest_disable_tap(dev->libinput_device);
5350 litest_disable_hold_gestures(dev->libinput_device);
5354 litest_touch_down(dev, 0, 50, 99);
5355 litest_touch_move_to(dev, 0, 55, 99, 60, 99, 50);
5359 litest_touch_move_to(dev, 0, 60, 99, 90, 99, 30);
5360 litest_touch_up(dev, 0);
5368 struct litest_device *dev = litest_current_device();
5369 struct libinput *li = dev->libinput;
5371 if (!has_thumb_detect(dev))
5374 litest_disable_tap(dev->libinput_device);
5375 litest_disable_hold_gestures(dev->libinput_device);
5379 litest_touch_down(dev, 0, 50, 99);
5380 litest_touch_move_to(dev, 0, 50, 99, 90, 99, 30);
5384 litest_touch_move_to(dev, 0, 90, 99, 60, 99, 50);
5385 litest_touch_up(dev, 0);
5393 struct litest_device *dev = litest_current_device();
5394 struct libinput *li = dev->libinput;
5396 litest_disable_tap(dev->libinput_device);
5397 litest_enable_2fg_scroll(dev);
5398 litest_disable_hold_gestures(dev->libinput_device);
5400 if (libevdev_get_num_slots(dev->evdev) < 3)
5407 litest_touch_down(dev, 0, 50, 20);
5408 litest_touch_move_to(dev, 0, 50, 20, 70, 99, 15);
5409 litest_touch_up(dev, 0);
5415 litest_touch_down(dev, 1, 50, 50);
5416 litest_touch_down(dev, 2, 55, 50);
5419 litest_touch_move_to(dev, 1, 50, y, 50, y + 1, 1);
5420 litest_touch_move_to(dev, 2, 55, y, 55, y + 1, 1);
5423 litest_touch_up(dev, 1);
5424 litest_touch_up(dev, 2);
5436 struct litest_device *dev = litest_current_device();
5437 struct libinput *li = dev->libinput;
5440 if (!has_thumb_detect(dev))
5443 litest_disable_tap(dev->libinput_device);
5444 litest_disable_hold_gestures(dev->libinput_device);
5446 libinput_device_config_click_set_method(dev->libinput_device,
5451 litest_touch_down(dev, 0, 50, 99); /* thumb */
5453 litest_touch_down(dev, 1, 60, 50);
5455 litest_button_click(dev, BTN_LEFT, true);
5466 litest_button_click(dev, BTN_LEFT, false);
5467 litest_touch_up(dev, 0);
5468 litest_touch_up(dev, 1);
5472 litest_touch_down(dev, 1, 60, 99); /* thumb */
5474 litest_touch_down(dev, 0, 50, 50);
5476 litest_button_click(dev, BTN_LEFT, true);
5491 struct litest_device *dev = litest_current_device();
5492 struct libinput *li = dev->libinput;
5495 if (!has_thumb_detect(dev))
5498 litest_disable_tap(dev->libinput_device);
5499 litest_disable_hold_gestures(dev->libinput_device);
5501 libinput_device_config_click_set_method(dev->libinput_device,
5506 litest_touch_down(dev, 0, 90, 99); /* thumb */
5508 litest_button_click(dev, BTN_LEFT, true);
5525 struct litest_device *dev = litest_current_device();
5526 struct libinput *li = dev->libinput;
5528 litest_disable_tap(dev->libinput_device);
5529 litest_enable_clickfinger(dev);
5530 litest_disable_hold_gestures(dev->libinput_device);
5532 if (!has_thumb_detect(dev))
5538 litest_touch_down(dev, 0, 50, 99);
5547 litest_touch_down(dev, 1, 70, 99);
5550 litest_touch_move_two_touches(dev, 50, 99, 70, 99, 0, -20, 10);
5551 litest_touch_up(dev, 0);
5552 litest_touch_up(dev, 1);
5560 struct litest_device *dev = litest_current_device();
5561 struct libinput *li = dev->libinput;
5569 litest_enable_clickfinger(dev);
5572 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
5573 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, 1);
5574 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, 1200);
5575 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, 3200);
5576 litest_event(dev, EV_ABS, ABS_MT_PRESSURE, 78);
5577 litest_event(dev, EV_ABS, ABS_X, 1200);
5578 litest_event(dev, EV_ABS, ABS_Y, 3200);
5579 litest_event(dev, EV_ABS, ABS_PRESSURE, 78);
5580 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 1);
5581 litest_event(dev, EV_KEY, BTN_TOUCH, 1);
5582 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5587 litest_event(dev, EV_ABS, ABS_MT_SLOT, 1);
5588 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, 1);
5589 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, 3500);
5590 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, 3500);
5591 litest_event(dev, EV_ABS, ABS_MT_PRESSURE, 73);
5592 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
5593 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 1);
5594 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5599 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
5600 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, 4000);
5601 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, 4000);
5602 litest_event(dev, EV_ABS, ABS_MT_PRESSURE, 78);
5603 litest_event(dev, EV_ABS, ABS_MT_SLOT, 1);
5604 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
5605 litest_event(dev, EV_ABS, ABS_X, 4000);
5606 litest_event(dev, EV_ABS, ABS_Y, 4000);
5607 litest_event(dev, EV_ABS, ABS_PRESSURE, 78);
5608 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
5609 litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 1);
5610 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5615 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
5616 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, 4000);
5617 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, 4000);
5618 litest_event(dev, EV_ABS, ABS_MT_PRESSURE, 78);
5619 litest_event(dev, EV_ABS, ABS_MT_SLOT, 1);
5620 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, 3);
5621 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, 3500);
5622 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, 3500);
5623 litest_event(dev, EV_ABS, ABS_MT_PRESSURE, 73);
5624 litest_event(dev, EV_ABS, ABS_X, 4000);
5625 litest_event(dev, EV_ABS, ABS_Y, 4000);
5626 litest_event(dev, EV_ABS, ABS_PRESSURE, 78);
5627 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5632 litest_event(dev, EV_KEY, BTN_LEFT, 1);
5633 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5635 litest_event(dev, EV_KEY, BTN_LEFT, 0);
5636 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5652 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
5653 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
5654 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
5655 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
5656 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
5657 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
5658 litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 0);
5659 litest_event(dev, EV_KEY, BTN_TOUCH, 0);
5660 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5666 struct litest_device *dev = litest_current_device();
5667 struct libinput *li = dev->libinput;
5675 litest_enable_clickfinger(dev);
5678 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
5679 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, 1);
5680 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, 2200);
5681 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, 3200);
5682 litest_event(dev, EV_ABS, ABS_MT_PRESSURE, 78);
5683 litest_event(dev, EV_ABS, ABS_X, 2200);
5684 litest_event(dev, EV_ABS, ABS_Y, 3200);
5685 litest_event(dev, EV_ABS, ABS_PRESSURE, 78);
5686 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 1);
5687 litest_event(dev, EV_KEY, BTN_TOUCH, 1);
5688 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5693 litest_event(dev, EV_ABS, ABS_MT_SLOT, 1);
5694 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, 1);
5695 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, 3500);
5696 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, 3500);
5697 litest_event(dev, EV_ABS, ABS_MT_PRESSURE, 73);
5698 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
5699 litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 1);
5700 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5706 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
5707 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, 4000);
5708 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, 4000);
5709 litest_event(dev, EV_ABS, ABS_MT_PRESSURE, 78);
5710 litest_event(dev, EV_ABS, ABS_MT_SLOT, 1);
5711 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
5712 litest_event(dev, EV_ABS, ABS_X, 4000);
5713 litest_event(dev, EV_ABS, ABS_Y, 4000);
5714 litest_event(dev, EV_ABS, ABS_PRESSURE, 78);
5715 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5720 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
5721 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, 4000);
5722 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, 4000);
5723 litest_event(dev, EV_ABS, ABS_MT_PRESSURE, 78);
5724 litest_event(dev, EV_ABS, ABS_MT_SLOT, 1);
5725 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, 3);
5726 litest_event(dev, EV_ABS, ABS_MT_POSITION_X, 3500);
5727 litest_event(dev, EV_ABS, ABS_MT_POSITION_Y, 3500);
5728 litest_event(dev, EV_ABS, ABS_MT_PRESSURE, 73);
5729 litest_event(dev, EV_ABS, ABS_X, 4000);
5730 litest_event(dev, EV_ABS, ABS_Y, 4000);
5731 litest_event(dev, EV_ABS, ABS_PRESSURE, 78);
5732 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5738 litest_event(dev, EV_KEY, BTN_LEFT, 1);
5739 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5741 litest_event(dev, EV_KEY, BTN_LEFT, 0);
5742 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5758 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
5759 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
5760 litest_event(dev, EV_ABS, ABS_MT_SLOT, 0);
5761 litest_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
5762 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
5763 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
5764 litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 0);
5765 litest_event(dev, EV_KEY, BTN_TOUCH, 0);
5766 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5772 struct litest_device *dev = litest_current_device();
5773 struct libinput *li = dev->libinput;
5788 litest_touch_down(dev, 0, start[0][0], start[0][1]);
5790 litest_touch_down(dev, 1, start[1][0], start[1][1]);
5793 litest_touch_move_two_touches(dev,
5802 litest_push_event_frame(dev);
5803 litest_touch_up(dev, first);
5804 litest_touch_move(dev, second,
5807 litest_pop_event_frame(dev);
5813 litest_touch_move_to(dev, second,
5822 litest_touch_move_to(dev, second, 50, 21, 50, 11, 20);
5837 litest_touch_up(dev, second);
5844 struct litest_device *dev = litest_current_device();
5848 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 1);
5849 litest_event(dev, EV_SYN, SYN_REPORT, 0);
5853 libevdev_uinput_get_devnode(dev->uinput));
5856 litest_touch_down(dev, 0, 50, 50);
5857 litest_touch_move_to(dev, 0, 50, 50, 70, 50, 10);
5867 struct litest_device *dev = litest_current_device();
5868 struct libinput *li = dev->libinput;
5871 litest_disable_tap(dev->libinput_device);
5872 litest_disable_hold_gestures(dev->libinput_device);
5875 litest_touch_down(dev, 0, 50, 50);
5876 litest_touch_move_to(dev, 0, 50, 50, 80, 50, 20);
5877 litest_touch_up(dev, 0);
5901 struct litest_device *dev = litest_current_device();
5902 struct libinput *li = dev->libinput;
5905 litest_touch_down(dev, 0, 20, 30);
5906 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
5912 litest_touch_move_to(dev, 0, 90, 30, 20, 80, 1);
5916 litest_touch_move_to(dev, 0, 20, 80, 21, 81, 10);
5917 litest_touch_up(dev, 0);
5940 struct litest_device *dev = litest_current_device();
5941 struct libinput *li = dev->libinput;
5944 litest_touch_down(dev, 0, 20, 30);
5945 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
5952 litest_touch_move(dev, 0, 90, 88);
5956 litest_touch_move_to(dev, 0, 90, 88, 91, 89, 10);
5957 litest_touch_up(dev, 0);
5980 struct litest_device *dev = litest_current_device();
5982 struct libinput *li = dev->libinput;
5988 dev->libinput_device,
5992 litest_touch_down(dev, 0, 20, 30);
5993 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
5994 litest_touch_up(dev, 0);
6000 litest_touch_down(dev, 0, 20, 30);
6001 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6002 litest_touch_up(dev, 0);
6008 litest_touch_down(dev, 0, 20, 30);
6009 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6010 litest_touch_up(dev, 0);
6017 struct litest_device *dev = litest_current_device();
6019 struct libinput *li = dev->libinput;
6025 dev->libinput_device,
6029 litest_touch_down(dev, 0, 20, 30);
6030 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6031 litest_touch_up(dev, 0);
6043 litest_touch_down(dev, 0, 20, 30);
6044 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6045 litest_touch_up(dev, 0);
6051 litest_touch_down(dev, 0, 20, 30);
6052 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6053 litest_touch_up(dev, 0);
6060 struct litest_device *dev = litest_current_device();
6062 struct libinput *li = dev->libinput;
6068 dev->libinput_device,
6072 litest_touch_down(dev, 0, 20, 30);
6073 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6074 litest_touch_up(dev, 0);
6081 litest_touch_down(dev, 0, 20, 30);
6082 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6083 litest_touch_up(dev, 0);
6089 litest_touch_down(dev, 0, 20, 30);
6090 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6091 litest_touch_up(dev, 0);
6097 litest_touch_down(dev, 0, 20, 30);
6098 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6099 litest_touch_up(dev, 0);
6106 struct litest_device *dev = litest_current_device();
6108 struct libinput *li = dev->libinput;
6114 dev->libinput_device,
6118 litest_touch_down(dev, 0, 20, 30);
6119 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6120 litest_touch_up(dev, 0);
6133 litest_touch_down(dev, 0, 20, 30);
6134 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6135 litest_touch_up(dev, 0);
6141 litest_touch_down(dev, 0, 20, 30);
6142 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6143 litest_touch_up(dev, 0);
6149 litest_touch_down(dev, 0, 20, 30);
6150 litest_touch_move_to(dev, 0, 20, 30, 90, 30, 10);
6151 litest_touch_up(dev, 0);
6157 touchpad_has_pressure(struct litest_device *dev)
6159 struct libevdev *evdev = dev->evdev;
6161 if (dev->which == LITEST_SYNAPTICS_PRESSUREPAD)
6177 struct litest_device *dev = litest_current_device();
6178 struct libinput *li = dev->libinput;
6187 if (!touchpad_has_pressure(dev))
6195 litest_touch_down_extended(dev, 0, 50, 50, axes);
6196 litest_touch_move_to_extended(dev, 0, 50, 50, 80, 80, axes,
6198 litest_touch_up(dev, 0);
6211 struct litest_device *dev = litest_current_device();
6212 struct libinput *li = dev->libinput;
6219 if (!touchpad_has_pressure(dev))
6224 litest_touch_down(dev, 0, 30, 50);
6225 litest_touch_down_extended(dev, 1, 50, 50, axes);
6227 litest_touch_move_to(dev, 0, 30, 50, 80, 80, 10);
6231 litest_touch_move_to_extended(dev, 1, 50, 50, 80, 80, axes, 10);
6233 litest_touch_move_to(dev, 0, 80, 80, 20, 50, 10);
6234 litest_touch_move_to_extended(dev, 1, 80, 80, 50, 50, axes, 10);
6242 struct litest_device *dev = litest_current_device();
6243 struct libinput *li = dev->libinput;
6250 if (!touchpad_has_pressure(dev))
6263 litest_touch_down_extended(dev, 0, 50, 50, axes);
6265 litest_event(dev, EV_KEY, BTN_TOOL_FINGER, 0);
6266 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 1);
6267 litest_event(dev, EV_SYN, SYN_REPORT, 0);
6269 litest_touch_move_to_extended(dev, 0, 50, 50, 80, 80, axes, 10);
6276 struct litest_device *dev = litest_current_device();
6277 struct libinput *li = dev->libinput;
6284 if (!touchpad_has_pressure(dev))
6287 litest_enable_tap(dev->libinput_device);
6288 litest_disable_hold_gestures(dev->libinput_device);
6291 litest_touch_down_extended(dev, 0, 50, 50, axes);
6293 litest_touch_up(dev, 0);
6300 struct litest_device *dev = litest_current_device();
6301 struct libinput *li = dev->libinput;
6308 if (!touchpad_has_pressure(dev))
6311 litest_enable_tap(dev->libinput_device);
6312 litest_disable_hold_gestures(dev->libinput_device);
6316 litest_touch_down_extended(dev, 0, 40, 50, axes);
6317 litest_touch_down_extended(dev, 1, 50, 50, axes);
6319 litest_touch_up(dev, 0);
6320 litest_touch_up(dev, 1);
6327 struct litest_device *dev = litest_current_device();
6328 struct libinput *li = dev->libinput;
6336 if (!touchpad_has_pressure(dev))
6339 litest_enable_tap(dev->libinput_device);
6340 litest_disable_hold_gestures(dev->libinput_device);
6344 litest_touch_down(dev, 0, 40, 50);
6345 litest_touch_down_extended(dev, 1, 50, 50, axes);
6347 litest_touch_up(dev, 0);
6348 litest_touch_up(dev, 1);
6370 struct litest_device *dev = litest_current_device();
6371 struct libinput *li = dev->libinput;
6380 if (libevdev_get_num_slots(dev->evdev) != 2)
6383 if (!touchpad_has_pressure(dev))
6386 litest_enable_tap(dev->libinput_device);
6387 litest_disable_hold_gestures(dev->libinput_device);
6391 litest_touch_down_extended(dev, 0, 40, 50, axes);
6392 litest_touch_down_extended(dev, 1, 45, 50, axes);
6397 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
6398 litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 1);
6399 litest_event(dev, EV_SYN, SYN_REPORT, 0);
6403 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 1);
6404 litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 0);
6405 litest_event(dev, EV_SYN, SYN_REPORT, 0);
6409 litest_touch_move(dev, 0, 40, 50);
6413 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 0);
6414 litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 1);
6415 litest_event(dev, EV_SYN, SYN_REPORT, 0);
6418 litest_event(dev, EV_KEY, BTN_TOOL_DOUBLETAP, 1);
6419 litest_event(dev, EV_KEY, BTN_TOOL_TRIPLETAP, 0);
6420 litest_event(dev, EV_SYN, SYN_REPORT, 0);
6437 struct litest_device *dev = litest_current_device();
6438 struct libinput *li = dev->libinput;
6444 litest_enable_2fg_scroll(dev);
6447 litest_touch_down(dev, 0, 40, 50);
6448 litest_touch_down(dev, 1, 60, 50);
6449 litest_touch_move_two_touches(dev, 40, 50, 60, 50, 0, -20, 10);
6452 litest_push_event_frame(dev);
6453 litest_touch_move_extended(dev, 0, 40, 31, axes);
6454 litest_touch_move_extended(dev, 1, 60, 31, axes);
6455 litest_pop_event_frame(dev);
6463 litest_push_event_frame(dev);
6464 litest_touch_move_extended(dev, 0, 40, 35, axes);
6465 litest_touch_move_extended(dev, 1, 60, 35, axes);
6466 litest_pop_event_frame(dev);
6468 litest_push_event_frame(dev);
6469 litest_touch_move_extended(dev, 0, 40, 40, axes);
6470 litest_touch_move_extended(dev, 1, 60, 40, axes);
6471 litest_pop_event_frame(dev);
6479 struct litest_device *dev = litest_current_device();
6480 struct libinput *li = dev->libinput;
6488 if (!touchpad_has_touch_size(dev))
6495 litest_touch_down_extended(dev, 0, 50, 50, axes);
6496 litest_touch_move_to_extended(dev, 0, 50, 50, 80, 80, axes, 10);
6497 litest_touch_up(dev, 0);
6502 litest_touch_down_extended(dev, 0, 50, 50, axes);
6503 litest_touch_move_to_extended(dev, 0, 50, 50, 80, 80, axes, 10);
6504 litest_touch_up(dev, 0);
6512 struct litest_device *dev = litest_current_device();
6513 struct libinput *li = dev->libinput;
6521 if (!touchpad_has_touch_size(dev))
6527 litest_touch_down_extended(dev, 0, 50, 50, axes);
6528 litest_touch_move_to_extended(dev, 0, 50, 50, 80, 80, axes, 10);
6535 litest_touch_down_extended(dev, 1, 70, 70, axes);
6536 litest_touch_move_to_extended(dev, 1, 70, 70, 80, 90, axes, 10);
6541 litest_touch_move_to_extended(dev, 0, 80, 80, 50, 50, axes, 10);
6546 litest_touch_up(dev, 1);
6547 litest_touch_up(dev, 0);
6553 struct litest_device *dev = litest_current_device();
6554 struct libinput *li = dev->libinput;
6561 if (!touchpad_has_touch_size(dev) ||
6562 litest_touchpad_is_external(dev))
6570 litest_touch_down_extended(dev, 0, 50, 50, axes);
6571 litest_touch_move_to_extended(dev, 0, 50, 50, 80, 80, axes, 10);
6578 litest_touch_move_to_extended(dev, 0, 80, 80, 50, 50, axes, 10);
6585 struct litest_device *dev = litest_current_device();
6586 struct libinput *li = dev->libinput;
6593 if (!touchpad_has_touch_size(dev) ||
6594 litest_touchpad_is_external(dev))
6602 litest_touch_down(dev, 0, 50, 50);
6603 litest_touch_move_to(dev, 0, 50, 70, 80, 90, 10);
6606 litest_touch_move_to_extended(dev, 0, 80, 90, 50, 20, axes, 10);
6607 litest_touch_up(dev, 0);
6614 litest_touch_down(dev, 0, 50, 50);
6615 litest_touch_move_to(dev, 0, 50, 70, 80, 90, 10);
6618 litest_touch_move_to_extended(dev, 0, 80, 90, 50, 20, axes, 10);
6619 litest_touch_up(dev, 0);
6626 struct litest_device *dev = litest_current_device();
6627 struct libinput *li = dev->libinput;
6634 if (!touchpad_has_touch_size(dev) ||
6635 litest_touchpad_is_external(dev))
6643 litest_touch_down(dev, 0, 80, 90);
6644 litest_touch_move_to_extended(dev, 0, 80, 90, 50, 20, axes, 10);
6645 litest_touch_move_to(dev, 0, 50, 20, 80, 90, 10);
6646 litest_touch_up(dev, 0);
6653 litest_touch_down(dev, 0, 80, 90);
6654 litest_touch_move_to_extended(dev, 0, 80, 90, 50, 20, axes, 10);
6655 litest_touch_move_to(dev, 0, 50, 20, 80, 90, 10);
6656 litest_touch_up(dev, 0);
6663 struct litest_device *dev = litest_current_device();
6664 struct libinput *li = dev->libinput;
6671 if (!touchpad_has_touch_size(dev) ||
6672 litest_touchpad_is_external(dev) ||
6673 !litest_has_palm_detect_size(dev) ||
6674 !litest_has_2fg_scroll(dev))
6677 litest_enable_2fg_scroll(dev);
6683 litest_touch_down(dev, 0, 99, 50);
6684 litest_touch_move_to_extended(dev, 0, 99, 50, 20, 50, axes, 20);
6685 litest_touch_up(dev, 0);
6740 struct litest_device *dev = litest_current_device();
6741 struct libinput *li = dev->libinput;
6743 if (!has_thumb_detect(dev))
6746 if (litest_has_clickfinger(dev))
6747 litest_enable_clickfinger(dev);
6751 litest_touch_down(dev, 0, 20, 20);
6752 litest_touch_move_to(dev, 0, 20, 20, 85, 80, 20);
6753 litest_touch_down(dev, 1, 20, 80);
6754 litest_touch_move_two_touches(dev, 85, 80, 20, 80, -20, -20, 10);
6757 litest_touch_up(dev, 0);
6758 litest_touch_up(dev, 1);
6766 struct litest_device *dev = litest_current_device();
6767 struct libinput *li = dev->libinput;
6769 if (!has_thumb_detect(dev))
6772 if (!litest_has_2fg_scroll(dev))
6775 if (litest_has_clickfinger(dev))
6776 litest_enable_clickfinger(dev);
6778 litest_enable_2fg_scroll(dev);
6782 litest_touch_down(dev, 0, 20, 20);
6783 litest_touch_move_to(dev, 0, 20, 20, 80, 80, 20);
6785 litest_touch_down(dev, 1, 79, 80);
6786 litest_touch_move_two_touches(dev, 80, 80, 79, 80, -20, -20, 10);
6789 litest_touch_up(dev, 0);
6790 litest_touch_up(dev, 1);
6798 struct litest_device *dev = litest_current_device();
6799 struct libinput *li = dev->libinput;
6801 if (!has_thumb_detect(dev))
6804 litest_enable_edge_scroll(dev);
6805 if (litest_has_clickfinger(dev))
6806 litest_enable_clickfinger(dev);
6810 litest_touch_down(dev, 0, 20, 20);
6811 litest_touch_move_to(dev, 0, 20, 20, 60, 80, 20);
6813 litest_touch_down(dev, 1, 59, 80);
6814 litest_touch_move_two_touches(dev, 60, 80, 59, 80, -20, -20, 10);
6817 litest_touch_up(dev, 0);
6819 litest_touch_up(dev, 1);
6827 struct litest_device *dev = litest_current_device();
6828 struct libinput *li = dev->libinput;
6835 if (!has_thumb_detect(dev))
6842 litest_touch_down_extended(dev, 2, 20, 20, axes);
6843 litest_touch_move_to_extended(dev, 2, 20, 20, 60, 80, axes, 20);
6847 litest_push_event_frame(dev);
6848 litest_touch_down(dev, 0, 59, 70);
6849 litest_touch_down(dev, 1, 65, 70);
6850 litest_pop_event_frame(dev);
6852 litest_touch_move_two_touches(dev, 59, 70, 65, 70, 0, 30, 10);
6855 litest_touch_up(dev, 2);
6857 litest_touch_up(dev, 1);
6858 litest_touch_up(dev, 0);
7192 struct litest_device *dev = litest_current_device();
7193 struct libinput *li = dev->libinput;
7195 litest_enable_tap(dev->libinput_device);
7196 litest_disable_hold_gestures(dev->libinput_device);
7199 litest_touch_down(dev, 0, 50, 50);
7200 litest_touch_move(dev, 0, 50.1, 50.1);
7203 litest_push_event_frame(dev);
7204 litest_touch_up(dev, 0);
7205 litest_touch_down(dev, 0, 50.2, 50.2);
7206 litest_pop_event_frame(dev);
7217 litest_touch_move_to(dev, 0, 50.2, 50.2, 50, 70, 10);
7218 litest_touch_up(dev, 0);
7226 struct litest_device *dev = litest_current_device();
7227 struct libevdev *evdev = dev->evdev;