CASE_RETURN_STRING(TAP_STATE_IDLE);
CASE_RETURN_STRING(TAP_STATE_HOLD);
CASE_RETURN_STRING(TAP_STATE_TOUCH);
- CASE_RETURN_STRING(TAP_STATE_TAPPED);
+ CASE_RETURN_STRING(TAP_STATE_1FGTAP_TAPPED);
+ CASE_RETURN_STRING(TAP_STATE_2FGTAP_TAPPED);
+ CASE_RETURN_STRING(TAP_STATE_3FGTAP_TAPPED);
CASE_RETURN_STRING(TAP_STATE_TOUCH_2);
CASE_RETURN_STRING(TAP_STATE_TOUCH_2_HOLD);
CASE_RETURN_STRING(TAP_STATE_TOUCH_2_RELEASE);
CASE_RETURN_STRING(TAP_STATE_TOUCH_3_HOLD);
CASE_RETURN_STRING(TAP_STATE_TOUCH_3_RELEASE);
CASE_RETURN_STRING(TAP_STATE_TOUCH_3_RELEASE_2);
- CASE_RETURN_STRING(TAP_STATE_DRAGGING);
- CASE_RETURN_STRING(TAP_STATE_DRAGGING_WAIT);
- CASE_RETURN_STRING(TAP_STATE_DRAGGING_OR_DOUBLETAP);
- CASE_RETURN_STRING(TAP_STATE_DRAGGING_OR_TAP);
- CASE_RETURN_STRING(TAP_STATE_DRAGGING_2);
+ CASE_RETURN_STRING(TAP_STATE_1FGTAP_DRAGGING);
+ CASE_RETURN_STRING(TAP_STATE_2FGTAP_DRAGGING);
+ CASE_RETURN_STRING(TAP_STATE_3FGTAP_DRAGGING);
+ CASE_RETURN_STRING(TAP_STATE_1FGTAP_DRAGGING_WAIT);
+ CASE_RETURN_STRING(TAP_STATE_2FGTAP_DRAGGING_WAIT);
+ CASE_RETURN_STRING(TAP_STATE_3FGTAP_DRAGGING_WAIT);
+ CASE_RETURN_STRING(TAP_STATE_1FGTAP_DRAGGING_OR_DOUBLETAP);
+ CASE_RETURN_STRING(TAP_STATE_2FGTAP_DRAGGING_OR_DOUBLETAP);
+ CASE_RETURN_STRING(TAP_STATE_3FGTAP_DRAGGING_OR_DOUBLETAP);
+ CASE_RETURN_STRING(TAP_STATE_1FGTAP_DRAGGING_OR_TAP);
+ CASE_RETURN_STRING(TAP_STATE_2FGTAP_DRAGGING_OR_TAP);
+ CASE_RETURN_STRING(TAP_STATE_3FGTAP_DRAGGING_OR_TAP);
+ CASE_RETURN_STRING(TAP_STATE_1FGTAP_DRAGGING_2);
+ CASE_RETURN_STRING(TAP_STATE_2FGTAP_DRAGGING_2);
+ CASE_RETURN_STRING(TAP_STATE_3FGTAP_DRAGGING_2);
CASE_RETURN_STRING(TAP_STATE_DEAD);
}
return NULL;
assert(tp->tap.map < ARRAY_LENGTH(button_map));
- if (nfingers > 3)
+ if (nfingers < 1 || nfingers > 3)
return;
button = button_map[tp->tap.map][nfingers - 1];
1,
LIBINPUT_BUTTON_STATE_PRESSED);
if (tp->tap.drag_enabled) {
- tp->tap.state = TAP_STATE_TAPPED;
+ tp->tap.state = TAP_STATE_1FGTAP_TAPPED;
tp->tap.saved_release_time = time;
tp_tap_set_timer(tp, time);
} else {
static void
tp_tap_tapped_handle_event(struct tp_dispatch *tp,
struct tp_touch *t,
- enum tap_event event, uint64_t time)
+ enum tap_event event, uint64_t time,
+ int nfingers_tapped)
{
switch (event) {
case TAP_EVENT_MOTION:
case TAP_EVENT_RELEASE:
log_tap_bug(tp, t, event);
break;
- case TAP_EVENT_TOUCH:
- tp->tap.state = TAP_STATE_DRAGGING_OR_DOUBLETAP;
+ case TAP_EVENT_TOUCH: {
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_DRAGGING_OR_DOUBLETAP,
+ TAP_STATE_2FGTAP_DRAGGING_OR_DOUBLETAP,
+ TAP_STATE_3FGTAP_DRAGGING_OR_DOUBLETAP,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
tp->tap.saved_press_time = time;
tp_tap_set_timer(tp, time);
break;
+ }
case TAP_EVENT_TIMEOUT:
tp->tap.state = TAP_STATE_IDLE;
tp_tap_notify(tp,
tp->tap.saved_release_time,
- 1,
+ nfingers_tapped,
LIBINPUT_BUTTON_STATE_RELEASED);
break;
case TAP_EVENT_BUTTON:
tp->tap.state = TAP_STATE_DEAD;
tp_tap_notify(tp,
tp->tap.saved_release_time,
- 1,
+ nfingers_tapped,
LIBINPUT_BUTTON_STATE_RELEASED);
break;
case TAP_EVENT_THUMB:
break;
case TAP_EVENT_PALM:
tp->tap.state = TAP_STATE_TOUCH;
- tp_tap_set_timer(tp, time); /* overwrite timer */
break;
case TAP_EVENT_PALM_UP:
break;
tp->tap.saved_press_time,
2,
LIBINPUT_BUTTON_STATE_PRESSED);
- tp_tap_notify(tp,
- tp->tap.saved_release_time,
- 2,
- LIBINPUT_BUTTON_STATE_RELEASED);
- tp->tap.state = TAP_STATE_IDLE;
+ if (tp->tap.drag_enabled) {
+ tp->tap.state = TAP_STATE_2FGTAP_TAPPED;
+ tp_tap_set_timer(tp, time);
+ } else {
+ tp_tap_notify(tp,
+ tp->tap.saved_release_time,
+ 2,
+ LIBINPUT_BUTTON_STATE_RELEASED);
+ tp->tap.state = TAP_STATE_IDLE;
+ }
break;
case TAP_EVENT_MOTION:
tp_tap_move_to_dead(tp, t);
1,
LIBINPUT_BUTTON_STATE_PRESSED);
if (tp->tap.drag_enabled) {
- tp->tap.state = TAP_STATE_TAPPED;
- tp_tap_set_timer(tp, time);
+ tp->tap.state = TAP_STATE_1FGTAP_TAPPED;
} else {
tp_tap_notify(tp,
tp->tap.saved_release_time,
tp->tap.state = TAP_STATE_TOUCH_2_HOLD;
break;
case TAP_EVENT_BUTTON:
+ tp_tap_notify(tp,
+ tp->tap.saved_press_time,
+ 3,
+ LIBINPUT_BUTTON_STATE_PRESSED);
+ tp_tap_notify(tp,
+ tp->tap.saved_release_time,
+ 3,
+ LIBINPUT_BUTTON_STATE_RELEASED);
tp->tap.state = TAP_STATE_DEAD;
break;
case TAP_EVENT_THUMB:
tp->tap.saved_press_time,
3,
LIBINPUT_BUTTON_STATE_PRESSED);
- tp_tap_notify(tp,
- tp->tap.saved_release_time,
- 3,
- LIBINPUT_BUTTON_STATE_RELEASED);
- tp->tap.state = TAP_STATE_IDLE;
+ if (tp->tap.drag_enabled) {
+ tp->tap.state = TAP_STATE_3FGTAP_TAPPED;
+ tp_tap_set_timer(tp, time);
+ } else {
+ tp_tap_notify(tp,
+ tp->tap.saved_release_time,
+ 3,
+ LIBINPUT_BUTTON_STATE_RELEASED);
+ tp->tap.state = TAP_STATE_IDLE;
+ }
break;
case TAP_EVENT_MOTION:
tp_tap_notify(tp,
tp->tap.state = TAP_STATE_HOLD;
break;
case TAP_EVENT_BUTTON:
+ tp_tap_notify(tp,
+ tp->tap.saved_press_time,
+ 3,
+ LIBINPUT_BUTTON_STATE_PRESSED);
+ tp_tap_notify(tp,
+ tp->tap.saved_release_time,
+ 3,
+ LIBINPUT_BUTTON_STATE_RELEASED);
tp->tap.state = TAP_STATE_DEAD;
break;
case TAP_EVENT_THUMB:
tp->tap.saved_press_time,
2,
LIBINPUT_BUTTON_STATE_PRESSED);
- tp_tap_notify(tp,
- tp->tap.saved_release_time,
- 2,
- LIBINPUT_BUTTON_STATE_RELEASED);
- tp->tap.state = TAP_STATE_IDLE;
+ if (tp->tap.drag_enabled) {
+ tp->tap.state = TAP_STATE_2FGTAP_TAPPED;
+ } else {
+ tp_tap_notify(tp,
+ tp->tap.saved_release_time,
+ 2,
+ LIBINPUT_BUTTON_STATE_RELEASED);
+ tp->tap.state = TAP_STATE_IDLE;
+ }
break;
case TAP_EVENT_PALM_UP:
break;
static void
tp_tap_dragging_or_doubletap_handle_event(struct tp_dispatch *tp,
struct tp_touch *t,
- enum tap_event event, uint64_t time)
+ enum tap_event event, uint64_t time,
+ int nfingers_tapped)
{
switch (event) {
- case TAP_EVENT_TOUCH:
- tp->tap.state = TAP_STATE_DRAGGING_2;
+ case TAP_EVENT_TOUCH: {
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_DRAGGING_2,
+ TAP_STATE_2FGTAP_DRAGGING_2,
+ TAP_STATE_3FGTAP_DRAGGING_2,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
break;
+ }
case TAP_EVENT_RELEASE:
- tp->tap.state = TAP_STATE_TAPPED;
+ tp->tap.state = TAP_STATE_1FGTAP_TAPPED;
tp_tap_notify(tp,
tp->tap.saved_release_time,
- 1,
+ nfingers_tapped,
LIBINPUT_BUTTON_STATE_RELEASED);
tp_tap_notify(tp,
tp->tap.saved_press_time,
tp_tap_set_timer(tp, time);
break;
case TAP_EVENT_MOTION:
- case TAP_EVENT_TIMEOUT:
- tp->tap.state = TAP_STATE_DRAGGING;
+ case TAP_EVENT_TIMEOUT: {
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_DRAGGING,
+ TAP_STATE_2FGTAP_DRAGGING,
+ TAP_STATE_3FGTAP_DRAGGING,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
break;
+ }
case TAP_EVENT_BUTTON:
tp->tap.state = TAP_STATE_DEAD;
tp_tap_notify(tp,
tp->tap.saved_release_time,
- 1,
+ nfingers_tapped,
LIBINPUT_BUTTON_STATE_RELEASED);
break;
case TAP_EVENT_THUMB:
break;
- case TAP_EVENT_PALM:
- tp->tap.state = TAP_STATE_TAPPED;
+ case TAP_EVENT_PALM: {
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_TAPPED,
+ TAP_STATE_2FGTAP_TAPPED,
+ TAP_STATE_3FGTAP_TAPPED,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
break;
+ }
case TAP_EVENT_PALM_UP:
break;
}
static void
tp_tap_dragging_handle_event(struct tp_dispatch *tp,
struct tp_touch *t,
- enum tap_event event, uint64_t time)
+ enum tap_event event, uint64_t time,
+ int nfingers_tapped)
{
switch (event) {
- case TAP_EVENT_TOUCH:
- tp->tap.state = TAP_STATE_DRAGGING_2;
+ case TAP_EVENT_TOUCH: {
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_DRAGGING_2,
+ TAP_STATE_2FGTAP_DRAGGING_2,
+ TAP_STATE_3FGTAP_DRAGGING_2,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
break;
+ }
case TAP_EVENT_RELEASE:
if (tp->tap.drag_lock_enabled) {
- tp->tap.state = TAP_STATE_DRAGGING_WAIT;
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_DRAGGING_WAIT,
+ TAP_STATE_2FGTAP_DRAGGING_WAIT,
+ TAP_STATE_3FGTAP_DRAGGING_WAIT,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
tp_tap_set_drag_timer(tp, time);
} else {
tp_tap_notify(tp,
time,
- 1,
+ nfingers_tapped,
LIBINPUT_BUTTON_STATE_RELEASED);
tp->tap.state = TAP_STATE_IDLE;
}
break;
case TAP_EVENT_BUTTON:
tp->tap.state = TAP_STATE_DEAD;
- tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
+ tp_tap_notify(tp,
+ time,
+ nfingers_tapped,
+ LIBINPUT_BUTTON_STATE_RELEASED);
break;
case TAP_EVENT_THUMB:
break;
case TAP_EVENT_PALM:
tp_tap_notify(tp,
tp->tap.saved_release_time,
- 1,
+ nfingers_tapped,
LIBINPUT_BUTTON_STATE_RELEASED);
tp->tap.state = TAP_STATE_IDLE;
break;
static void
tp_tap_dragging_wait_handle_event(struct tp_dispatch *tp,
struct tp_touch *t,
- enum tap_event event, uint64_t time)
+ enum tap_event event, uint64_t time,
+ int nfingers_tapped)
{
switch (event) {
- case TAP_EVENT_TOUCH:
- tp->tap.state = TAP_STATE_DRAGGING_OR_TAP;
+ case TAP_EVENT_TOUCH: {
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_DRAGGING_OR_TAP,
+ TAP_STATE_2FGTAP_DRAGGING_OR_TAP,
+ TAP_STATE_3FGTAP_DRAGGING_OR_TAP,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
tp_tap_set_timer(tp, time);
break;
+ }
case TAP_EVENT_RELEASE:
case TAP_EVENT_MOTION:
break;
case TAP_EVENT_TIMEOUT:
tp->tap.state = TAP_STATE_IDLE;
- tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
+ tp_tap_notify(tp,
+ time,
+ nfingers_tapped,
+ LIBINPUT_BUTTON_STATE_RELEASED);
break;
case TAP_EVENT_BUTTON:
tp->tap.state = TAP_STATE_DEAD;
- tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
+ tp_tap_notify(tp,
+ time,
+ nfingers_tapped,
+ LIBINPUT_BUTTON_STATE_RELEASED);
break;
case TAP_EVENT_THUMB:
case TAP_EVENT_PALM:
static void
tp_tap_dragging_tap_handle_event(struct tp_dispatch *tp,
struct tp_touch *t,
- enum tap_event event, uint64_t time)
+ enum tap_event event, uint64_t time,
+ int nfingers_tapped)
{
switch (event) {
- case TAP_EVENT_TOUCH:
- tp->tap.state = TAP_STATE_DRAGGING_2;
- tp_tap_clear_timer(tp);
+ case TAP_EVENT_TOUCH: {
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_DRAGGING_2,
+ TAP_STATE_2FGTAP_DRAGGING_2,
+ TAP_STATE_3FGTAP_DRAGGING_2,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
break;
+ }
case TAP_EVENT_RELEASE:
tp->tap.state = TAP_STATE_IDLE;
- tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
+ tp_tap_notify(tp,
+ time,
+ nfingers_tapped,
+ LIBINPUT_BUTTON_STATE_RELEASED);
break;
case TAP_EVENT_MOTION:
- case TAP_EVENT_TIMEOUT:
- tp->tap.state = TAP_STATE_DRAGGING;
+ case TAP_EVENT_TIMEOUT: {
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_DRAGGING,
+ TAP_STATE_2FGTAP_DRAGGING,
+ TAP_STATE_3FGTAP_DRAGGING,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
break;
+ }
case TAP_EVENT_BUTTON:
tp->tap.state = TAP_STATE_DEAD;
- tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
+ tp_tap_notify(tp,
+ time,
+ nfingers_tapped,
+ LIBINPUT_BUTTON_STATE_RELEASED);
break;
case TAP_EVENT_THUMB:
break;
case TAP_EVENT_PALM:
tp_tap_notify(tp,
tp->tap.saved_release_time,
- 1,
+ nfingers_tapped,
LIBINPUT_BUTTON_STATE_RELEASED);
tp->tap.state = TAP_STATE_IDLE;
break;
+ }
case TAP_EVENT_PALM_UP:
break;
}
static void
tp_tap_dragging2_handle_event(struct tp_dispatch *tp,
struct tp_touch *t,
- enum tap_event event, uint64_t time)
+ enum tap_event event, uint64_t time,
+ int nfingers_tapped)
{
switch (event) {
- case TAP_EVENT_RELEASE:
- tp->tap.state = TAP_STATE_DRAGGING;
+ case TAP_EVENT_RELEASE: {
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_DRAGGING,
+ TAP_STATE_2FGTAP_DRAGGING,
+ TAP_STATE_3FGTAP_DRAGGING,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
break;
+ }
case TAP_EVENT_TOUCH:
tp->tap.state = TAP_STATE_DEAD;
- tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
+ tp_tap_notify(tp,
+ time,
+ nfingers_tapped,
+ LIBINPUT_BUTTON_STATE_RELEASED);
break;
case TAP_EVENT_MOTION:
case TAP_EVENT_TIMEOUT:
break;
case TAP_EVENT_BUTTON:
tp->tap.state = TAP_STATE_DEAD;
- tp_tap_notify(tp, time, 1, LIBINPUT_BUTTON_STATE_RELEASED);
+ tp_tap_notify(tp,
+ time,
+ nfingers_tapped,
+ LIBINPUT_BUTTON_STATE_RELEASED);
break;
case TAP_EVENT_THUMB:
break;
- case TAP_EVENT_PALM:
- tp->tap.state = TAP_STATE_DRAGGING_OR_DOUBLETAP;
+ case TAP_EVENT_PALM: {
+ enum tp_tap_state dest[3] = {
+ TAP_STATE_1FGTAP_DRAGGING_OR_DOUBLETAP,
+ TAP_STATE_2FGTAP_DRAGGING_OR_DOUBLETAP,
+ TAP_STATE_3FGTAP_DRAGGING_OR_DOUBLETAP,
+ };
+ assert(nfingers_tapped >= 1 && nfingers_tapped <= 3);
+ tp->tap.state = dest[nfingers_tapped - 1];
break;
+ }
case TAP_EVENT_PALM_UP:
break;
}
case TAP_STATE_HOLD:
tp_tap_hold_handle_event(tp, t, event, time);
break;
- case TAP_STATE_TAPPED:
- tp_tap_tapped_handle_event(tp, t, event, time);
+ case TAP_STATE_1FGTAP_TAPPED:
+ tp_tap_tapped_handle_event(tp, t, event, time, 1);
+ break;
+ case TAP_STATE_2FGTAP_TAPPED:
+ tp_tap_tapped_handle_event(tp, t, event, time, 2);
+ break;
+ case TAP_STATE_3FGTAP_TAPPED:
+ tp_tap_tapped_handle_event(tp, t, event, time, 3);
break;
case TAP_STATE_TOUCH_2:
tp_tap_touch2_handle_event(tp, t, event, time);
case TAP_STATE_TOUCH_3_RELEASE_2:
tp_tap_touch3_release2_handle_event(tp, t, event, time);
break;
- case TAP_STATE_DRAGGING_OR_DOUBLETAP:
- tp_tap_dragging_or_doubletap_handle_event(tp, t, event, time);
+ case TAP_STATE_1FGTAP_DRAGGING_OR_DOUBLETAP:
+ tp_tap_dragging_or_doubletap_handle_event(tp, t, event, time,
+ 1);
+ break;
+ case TAP_STATE_2FGTAP_DRAGGING_OR_DOUBLETAP:
+ tp_tap_dragging_or_doubletap_handle_event(tp, t, event, time,
+ 2);
+ break;
+ case TAP_STATE_3FGTAP_DRAGGING_OR_DOUBLETAP:
+ tp_tap_dragging_or_doubletap_handle_event(tp, t, event, time,
+ 3);
+ break;
+ case TAP_STATE_1FGTAP_DRAGGING:
+ tp_tap_dragging_handle_event(tp, t, event, time, 1);
+ break;
+ case TAP_STATE_2FGTAP_DRAGGING:
+ tp_tap_dragging_handle_event(tp, t, event, time, 2);
+ break;
+ case TAP_STATE_3FGTAP_DRAGGING:
+ tp_tap_dragging_handle_event(tp, t, event, time, 3);
+ break;
+ case TAP_STATE_1FGTAP_DRAGGING_WAIT:
+ tp_tap_dragging_wait_handle_event(tp, t, event, time, 1);
+ break;
+ case TAP_STATE_2FGTAP_DRAGGING_WAIT:
+ tp_tap_dragging_wait_handle_event(tp, t, event, time, 2);
+ break;
+ case TAP_STATE_3FGTAP_DRAGGING_WAIT:
+ tp_tap_dragging_wait_handle_event(tp, t, event, time, 3);
+ break;
+ case TAP_STATE_1FGTAP_DRAGGING_OR_TAP:
+ tp_tap_dragging_tap_handle_event(tp, t, event, time, 1);
+ break;
+ case TAP_STATE_2FGTAP_DRAGGING_OR_TAP:
+ tp_tap_dragging_tap_handle_event(tp, t, event, time, 2);
break;
- case TAP_STATE_DRAGGING:
- tp_tap_dragging_handle_event(tp, t, event, time);
+ case TAP_STATE_3FGTAP_DRAGGING_OR_TAP:
+ tp_tap_dragging_tap_handle_event(tp, t, event, time, 3);
break;
- case TAP_STATE_DRAGGING_WAIT:
- tp_tap_dragging_wait_handle_event(tp, t, event, time);
+ case TAP_STATE_1FGTAP_DRAGGING_2:
+ tp_tap_dragging2_handle_event(tp, t, event, time, 1);
break;
- case TAP_STATE_DRAGGING_OR_TAP:
- tp_tap_dragging_tap_handle_event(tp, t, event, time);
+ case TAP_STATE_2FGTAP_DRAGGING_2:
+ tp_tap_dragging2_handle_event(tp, t, event, time, 2);
break;
- case TAP_STATE_DRAGGING_2:
- tp_tap_dragging2_handle_event(tp, t, event, time);
+ case TAP_STATE_3FGTAP_DRAGGING_2:
+ tp_tap_dragging2_handle_event(tp, t, event, time, 3);
break;
case TAP_STATE_DEAD:
tp_tap_dead_handle_event(tp, t, event, time);
*/
switch (tp->tap.state) {
case TAP_STATE_TOUCH:
- case TAP_STATE_TAPPED:
- case TAP_STATE_DRAGGING_OR_DOUBLETAP:
- case TAP_STATE_DRAGGING_OR_TAP:
+ case TAP_STATE_1FGTAP_TAPPED:
+ case TAP_STATE_2FGTAP_TAPPED:
+ case TAP_STATE_3FGTAP_TAPPED:
+ case TAP_STATE_1FGTAP_DRAGGING_OR_DOUBLETAP:
+ case TAP_STATE_2FGTAP_DRAGGING_OR_DOUBLETAP:
+ case TAP_STATE_3FGTAP_DRAGGING_OR_DOUBLETAP:
+ case TAP_STATE_1FGTAP_DRAGGING_OR_TAP:
+ case TAP_STATE_2FGTAP_DRAGGING_OR_TAP:
+ case TAP_STATE_3FGTAP_DRAGGING_OR_TAP:
case TAP_STATE_TOUCH_2:
case TAP_STATE_TOUCH_3:
filter_motion = 1;
tp_tap_dragging(const struct tp_dispatch *tp)
{
switch (tp->tap.state) {
- case TAP_STATE_DRAGGING:
- case TAP_STATE_DRAGGING_2:
- case TAP_STATE_DRAGGING_WAIT:
- case TAP_STATE_DRAGGING_OR_TAP:
+ case TAP_STATE_1FGTAP_DRAGGING:
+ case TAP_STATE_2FGTAP_DRAGGING:
+ case TAP_STATE_3FGTAP_DRAGGING:
+ case TAP_STATE_1FGTAP_DRAGGING_2:
+ case TAP_STATE_2FGTAP_DRAGGING_2:
+ case TAP_STATE_3FGTAP_DRAGGING_2:
+ case TAP_STATE_1FGTAP_DRAGGING_WAIT:
+ case TAP_STATE_2FGTAP_DRAGGING_WAIT:
+ case TAP_STATE_3FGTAP_DRAGGING_WAIT:
+ case TAP_STATE_1FGTAP_DRAGGING_OR_TAP:
+ case TAP_STATE_2FGTAP_DRAGGING_OR_TAP:
+ case TAP_STATE_3FGTAP_DRAGGING_OR_TAP:
return true;
default:
return false;