Lines Matching refs:gesture

155 	if (tp->gesture.started)
158 switch (tp->gesture.state) {
162 "%s in unknown gesture mode\n",
168 tp->gesture.finger_count);
176 tp->gesture.finger_count,
182 tp->gesture.finger_count,
189 tp->gesture.started = true;
295 delta.x = abs(t->point.x - t->gesture.initial.x);
296 delta.y = abs(t->point.y - t->gesture.initial.y);
307 delta = device_delta(touch->point, touch->gesture.initial);
321 struct tp_touch *first = tp->gesture.touches[0],
322 *second = tp->gesture.touches[1];
336 &tp->gesture.initial_distance,
337 &tp->gesture.angle,
338 &tp->gesture.center);
339 tp->gesture.prev_scale = 1.0;
347 struct tp_touch *first = tp->gesture.touches[0],
348 *second = tp->gesture.touches[1];
350 d0 = device_delta(first->point, first->gesture.initial);
351 d1 = device_delta(second->point, second->gesture.initial);
471 * scrolling for the life of the gesture.
489 "invalid gesture event %s in state %s\n",
491 gesture_state_to_str(tp->gesture.state));
501 return (tp->gesture.finger_count == 1) ||
502 (tp->gesture.finger_count == 2);
519 if (tp->gesture.finger_count > 3)
531 * happens when the user holds after cancelling a gesture/scroll.
545 if (!tp->gesture.hold_enabled)
553 libinput_timer_set(&tp->gesture.hold_timer, time + timeout);
564 libinput_timer_cancel(&tp->gesture.hold_timer);
568 tp->gesture.state = GESTURE_STATE_UNKNOWN;
573 tp->gesture.state = GESTURE_STATE_POINTER_MOTION;
576 tp->gesture.state = GESTURE_STATE_SCROLL;
593 libinput_timer_cancel(&tp->gesture.hold_timer);
594 tp->gesture.state = GESTURE_STATE_NONE;
597 tp->gesture.state = GESTURE_STATE_HOLD;
603 tp->gesture.state = GESTURE_STATE_POINTER_MOTION;
606 libinput_timer_cancel(&tp->gesture.hold_timer);
608 tp->gesture.state = GESTURE_STATE_SCROLL;
611 libinput_timer_cancel(&tp->gesture.hold_timer);
612 tp->gesture.state = GESTURE_STATE_SWIPE;
615 libinput_timer_cancel(&tp->gesture.hold_timer);
617 tp->gesture.state = GESTURE_STATE_PINCH;
633 libinput_timer_cancel(&tp->gesture.hold_timer);
634 tp->gesture.state = GESTURE_STATE_NONE;
637 tp->gesture.state = GESTURE_STATE_HOLD_AND_MOTION;
641 tp->gesture.state = GESTURE_STATE_POINTER_MOTION;
646 tp->gesture.state = GESTURE_STATE_SCROLL;
650 tp->gesture.state = GESTURE_STATE_SWIPE;
655 tp->gesture.state = GESTURE_STATE_PINCH;
671 libinput_timer_cancel(&tp->gesture.hold_timer);
672 tp->gesture.state = GESTURE_STATE_NONE;
676 tp->gesture.state = GESTURE_STATE_POINTER_MOTION;
700 libinput_timer_cancel(&tp->gesture.hold_timer);
701 tp->gesture.state = GESTURE_STATE_NONE;
704 if (tp->gesture.finger_count != 1)
707 first = tp->gesture.touches[0];
712 tp->gesture.state = GESTURE_STATE_HOLD_AND_MOTION;
734 libinput_timer_cancel(&tp->gesture.hold_timer);
735 tp->gesture.state = GESTURE_STATE_NONE;
740 tp->gesture.state = GESTURE_STATE_PINCH;
760 libinput_timer_cancel(&tp->gesture.hold_timer);
761 tp->gesture.state = GESTURE_STATE_NONE;
782 libinput_timer_cancel(&tp->gesture.hold_timer);
783 tp->gesture.state = GESTURE_STATE_NONE;
804 oldstate = tp->gesture.state;
806 switch(tp->gesture.state) {
833 if (oldstate != tp->gesture.state) {
835 "gesture state %s → %s → %s\n",
838 gesture_state_to_str(tp->gesture.state));
856 if (!tp->gesture.hold_enabled)
866 struct tp_touch *first = tp->gesture.touches[0],
867 *second = tp->gesture.touches[1],
872 double first_mm, second_mm; /* movement since gesture start in mm */
881 if (tp->gesture.finger_count == 1) {
887 if (tp->gesture.state == GESTURE_STATE_HOLD &&
895 if (tp->gesture.state == GESTURE_STATE_HOLD_AND_MOTION &&
907 if (tp->gesture.enabled && tp->gesture.finger_count > 2 &&
908 tp->gesture.finger_count > tp->num_slots) {
914 max_move += 2.0 * (tp->gesture.finger_count - 2);
915 min_move += 0.5 * (tp->gesture.finger_count - 2);
941 if ((!tp->gesture.enabled ||
943 time > (tp->gesture.initial_time + DEFAULT_GESTURE_SWIPE_TIMEOUT)) {
944 if (tp->gesture.finger_count == 2)
973 if ((!tp->gesture.enabled || finger_mm < min_move) &&
974 tp->gesture.finger_count == 2) {
983 tp->gesture.finger_count > 2 &&
984 tp->gesture.enabled &&
992 * tell what kind of gesture this is.
998 * valid gesture. Update gesture initial time and get directions so
1007 if (tp->gesture.finger_count > tp->num_slots ||
1009 if (tp->gesture.finger_count == 2) {
1014 if (tp->gesture.enabled) {
1027 struct tp_touch *first = tp->gesture.touches[0],
1028 *second = tp->gesture.touches[1];
1068 first->gesture.initial = first->point;
1069 tp->gesture.touches[0] = first;
1077 if (!tp->gesture.enabled) {
1116 tp->gesture.initial_time = time;
1117 first->gesture.initial = first->point;
1118 second->gesture.initial = second->point;
1119 tp->gesture.touches[0] = first;
1120 tp->gesture.touches[1] = second;
1171 if (time < (tp->gesture.initial_time + DEFAULT_GESTURE_PINCH_TIMEOUT) &&
1207 tp->gesture.finger_count,
1221 scale = distance / tp->gesture.initial_distance;
1223 angle_delta = angle - tp->gesture.angle;
1224 tp->gesture.angle = angle;
1230 fdelta = device_float_delta(center, tp->gesture.center);
1231 tp->gesture.center = center;
1236 scale == tp->gesture.prev_scale && angle_delta == 0.0)
1243 tp->gesture.finger_count,
1246 tp->gesture.prev_scale = scale;
1253 if (tp->gesture.state == GESTURE_STATE_NONE)
1256 if (tp->gesture.state == GESTURE_STATE_UNKNOWN)
1259 if (tp->gesture.state == GESTURE_STATE_HOLD)
1262 if (tp->gesture.state == GESTURE_STATE_POINTER_MOTION)
1265 if (tp->gesture.state == GESTURE_STATE_HOLD_AND_MOTION)
1268 if (tp->gesture.state == GESTURE_STATE_SCROLL)
1271 if (tp->gesture.state == GESTURE_STATE_SWIPE)
1274 if (tp->gesture.state == GESTURE_STATE_PINCH)
1301 if (tp->gesture.finger_count == 0)
1311 if (tp->gesture.state != GESTURE_STATE_POINTER_MOTION) {
1317 tp->gesture.finger_count = 1;
1318 tp->gesture.finger_count_pending = 0;
1322 if (tp->gesture.finger_count_pending)
1328 if (time < (tp->gesture.initial_time + DEFAULT_GESTURE_PINCH_TIMEOUT) &&
1332 if (tp->gesture.finger_count <= 4)
1350 enum tp_gesture_state state = tp->gesture.state;
1352 if (!tp->gesture.started) {
1361 "%s in unknown gesture mode\n",
1367 tp->gesture.finger_count, cancelled);
1374 tp->gesture.finger_count,
1375 tp->gesture.prev_scale,
1381 tp->gesture.finger_count,
1388 tp->gesture.started = false;
1401 if (tp->gesture.started && tp->gesture.state != GESTURE_STATE_HOLD)
1416 if (!tp->gesture.finger_count_pending)
1419 tp_gesture_cancel(tp, now); /* End current gesture */
1420 tp->gesture.finger_count = tp->gesture.finger_count_pending;
1421 tp->gesture.finger_count_pending = 0;
1435 if (active_touches != tp->gesture.finger_count) {
1436 /* If all fingers are lifted immediately end the gesture */
1439 tp->gesture.finger_count = 0;
1440 tp->gesture.finger_count_pending = 0;
1442 } else if (!tp->gesture.started) {
1443 tp->gesture.finger_count = active_touches;
1444 tp->gesture.finger_count_pending = 0;
1448 if (tp->gesture.state == GESTURE_STATE_UNKNOWN ||
1449 tp->gesture.state == GESTURE_STATE_POINTER_MOTION) {
1455 } else if (active_touches != tp->gesture.finger_count_pending) {
1456 tp->gesture.finger_count_pending = active_touches;
1457 libinput_timer_set(&tp->gesture.finger_count_switch_timer,
1461 tp->gesture.finger_count_pending = 0;
1481 tp->gesture.hold_enabled = (enabled == LIBINPUT_CONFIG_HOLD_ENABLED);
1492 return tp->gesture.hold_enabled ? LIBINPUT_CONFIG_HOLD_ENABLED :
1512 tp->gesture.config.set_hold_enabled = tp_gesture_set_hold_enabled;
1513 tp->gesture.config.get_hold_enabled = tp_gesture_is_hold_enabled;
1514 tp->gesture.config.get_hold_default = tp_gesture_get_hold_default;
1515 tp->device->base.config.gesture = &tp->gesture.config;
1520 tp->gesture.enabled = tp_gesture_are_gestures_enabled(tp);
1522 tp->gesture.state = GESTURE_STATE_NONE;
1523 tp->gesture.hold_enabled = tp_gesture_are_gestures_enabled(tp);
1529 libinput_timer_init(&tp->gesture.finger_count_switch_timer,
1538 libinput_timer_init(&tp->gesture.hold_timer,
1547 libinput_timer_cancel(&tp->gesture.finger_count_switch_timer);
1548 libinput_timer_cancel(&tp->gesture.hold_timer);