mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-05-08 11:19:14 +02:00
touchpad: split off dragging from the tapping state machine
No user-visible changes. Signed-off-by: satrmb <10471-satrmb@users.noreply.gitlab.freedesktop.org>
This commit is contained in:
parent
7ee481af16
commit
2a9d250fc6
3 changed files with 528 additions and 449 deletions
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 176 KiB |
File diff suppressed because it is too large
Load diff
|
|
@ -106,9 +106,6 @@ enum tp_tap_state {
|
|||
TAP_STATE_IDLE = 4,
|
||||
TAP_STATE_TOUCH,
|
||||
TAP_STATE_HOLD,
|
||||
TAP_STATE_1FGTAP_TAPPED,
|
||||
TAP_STATE_2FGTAP_TAPPED,
|
||||
TAP_STATE_3FGTAP_TAPPED,
|
||||
TAP_STATE_TOUCH_2,
|
||||
TAP_STATE_TOUCH_2_HOLD,
|
||||
TAP_STATE_TOUCH_2_RELEASE,
|
||||
|
|
@ -116,24 +113,29 @@ enum tp_tap_state {
|
|||
TAP_STATE_TOUCH_3_HOLD,
|
||||
TAP_STATE_TOUCH_3_RELEASE,
|
||||
TAP_STATE_TOUCH_3_RELEASE_2,
|
||||
TAP_STATE_1FGTAP_DRAGGING_OR_DOUBLETAP,
|
||||
TAP_STATE_2FGTAP_DRAGGING_OR_DOUBLETAP,
|
||||
TAP_STATE_3FGTAP_DRAGGING_OR_DOUBLETAP,
|
||||
TAP_STATE_1FGTAP_DRAGLOCK_CONTINUE,
|
||||
TAP_STATE_2FGTAP_DRAGLOCK_CONTINUE,
|
||||
TAP_STATE_3FGTAP_DRAGLOCK_CONTINUE,
|
||||
TAP_STATE_1FGTAP_DRAGGING,
|
||||
TAP_STATE_2FGTAP_DRAGGING,
|
||||
TAP_STATE_3FGTAP_DRAGGING,
|
||||
TAP_STATE_1FGTAP_DRAGLOCK_WAIT,
|
||||
TAP_STATE_2FGTAP_DRAGLOCK_WAIT,
|
||||
TAP_STATE_3FGTAP_DRAGLOCK_WAIT,
|
||||
TAP_STATE_1FGTAP_DRAGGING_2,
|
||||
TAP_STATE_2FGTAP_DRAGGING_2,
|
||||
TAP_STATE_3FGTAP_DRAGGING_2,
|
||||
TAP_STATE_DEAD, /**< finger count exceeded */
|
||||
};
|
||||
|
||||
enum tp_drag_state {
|
||||
DRAG_STATE_IDLE,
|
||||
DRAG_STATE_1FGTAP_TAPPED,
|
||||
DRAG_STATE_2FGTAP_TAPPED,
|
||||
DRAG_STATE_3FGTAP_TAPPED,
|
||||
DRAG_STATE_1FGTAP_DRAGGING_OR_DOUBLETAP,
|
||||
DRAG_STATE_2FGTAP_DRAGGING_OR_DOUBLETAP,
|
||||
DRAG_STATE_3FGTAP_DRAGGING_OR_DOUBLETAP,
|
||||
DRAG_STATE_1FGTAP_DRAGGING,
|
||||
DRAG_STATE_2FGTAP_DRAGGING,
|
||||
DRAG_STATE_3FGTAP_DRAGGING,
|
||||
DRAG_STATE_1FGTAP_DRAGLOCK_WAIT,
|
||||
DRAG_STATE_2FGTAP_DRAGLOCK_WAIT,
|
||||
DRAG_STATE_3FGTAP_DRAGLOCK_WAIT,
|
||||
DRAG_STATE_1FGTAP_DRAGLOCK_CONTINUE,
|
||||
DRAG_STATE_2FGTAP_DRAGLOCK_CONTINUE,
|
||||
DRAG_STATE_3FGTAP_DRAGLOCK_CONTINUE,
|
||||
DRAG_STATE_BUTTON, /**< clickpad button pressed */
|
||||
};
|
||||
|
||||
enum tp_tap_touch_state {
|
||||
TAP_TOUCH_STATE_IDLE = 16, /**< not in touch */
|
||||
TAP_TOUCH_STATE_TOUCH, /**< touching, may tap */
|
||||
|
|
@ -429,9 +431,11 @@ struct tp_dispatch {
|
|||
bool suspended;
|
||||
struct libinput_timer timer;
|
||||
enum tp_tap_state state;
|
||||
enum tp_drag_state drag_state;
|
||||
uint32_t buttons_pressed;
|
||||
uint64_t saved_press_time,
|
||||
saved_release_time;
|
||||
saved_release_time,
|
||||
saved_multitap_release_time;
|
||||
|
||||
enum libinput_config_tap_button_map map;
|
||||
enum libinput_config_tap_button_map want_map;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue