mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-05-08 12:28:10 +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_IDLE = 4,
|
||||||
TAP_STATE_TOUCH,
|
TAP_STATE_TOUCH,
|
||||||
TAP_STATE_HOLD,
|
TAP_STATE_HOLD,
|
||||||
TAP_STATE_1FGTAP_TAPPED,
|
|
||||||
TAP_STATE_2FGTAP_TAPPED,
|
|
||||||
TAP_STATE_3FGTAP_TAPPED,
|
|
||||||
TAP_STATE_TOUCH_2,
|
TAP_STATE_TOUCH_2,
|
||||||
TAP_STATE_TOUCH_2_HOLD,
|
TAP_STATE_TOUCH_2_HOLD,
|
||||||
TAP_STATE_TOUCH_2_RELEASE,
|
TAP_STATE_TOUCH_2_RELEASE,
|
||||||
|
|
@ -116,24 +113,29 @@ enum tp_tap_state {
|
||||||
TAP_STATE_TOUCH_3_HOLD,
|
TAP_STATE_TOUCH_3_HOLD,
|
||||||
TAP_STATE_TOUCH_3_RELEASE,
|
TAP_STATE_TOUCH_3_RELEASE,
|
||||||
TAP_STATE_TOUCH_3_RELEASE_2,
|
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 */
|
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 {
|
enum tp_tap_touch_state {
|
||||||
TAP_TOUCH_STATE_IDLE = 16, /**< not in touch */
|
TAP_TOUCH_STATE_IDLE = 16, /**< not in touch */
|
||||||
TAP_TOUCH_STATE_TOUCH, /**< touching, may tap */
|
TAP_TOUCH_STATE_TOUCH, /**< touching, may tap */
|
||||||
|
|
@ -429,9 +431,11 @@ struct tp_dispatch {
|
||||||
bool suspended;
|
bool suspended;
|
||||||
struct libinput_timer timer;
|
struct libinput_timer timer;
|
||||||
enum tp_tap_state state;
|
enum tp_tap_state state;
|
||||||
|
enum tp_drag_state drag_state;
|
||||||
uint32_t buttons_pressed;
|
uint32_t buttons_pressed;
|
||||||
uint64_t saved_press_time,
|
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 map;
|
||||||
enum libinput_config_tap_button_map want_map;
|
enum libinput_config_tap_button_map want_map;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue