From 21a363a2486a713434e890fc1f6b86a180755230 Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Wed, 16 Jun 2010 18:48:53 +0200 Subject: Add tapping logic This patch adds tap-to-click, tap-and-hold for dragging, two-finger and three-finger taps. Turned on by default for touch screens only; switch on in gestures.c. Signed-off-by: Henrik Rydberg --- driver/multitouch.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'driver') diff --git a/driver/multitouch.c b/driver/multitouch.c index 888c4c4..73a025d 100644 --- a/driver/multitouch.c +++ b/driver/multitouch.c @@ -245,6 +245,10 @@ static void handle_gestures(LocalDevicePtr local, int step = 1 + rot_fraction * get_cap_xsize(caps); button_scroll(local, 14, 15, &rot, step, gs->rot); } + if (GETBIT(gs->type, GS_TAP) && gs->ntap == 1) { + foreach_bit(i, gs->tapmask) + tickle_button(local, i + 1); + } } /* called for each full received packet from the touchpad */ @@ -258,6 +262,10 @@ static void read_input(LocalDevicePtr local) extract_gestures(&gs, mt); handle_gestures(local, &gs, &mt->caps); } + if (mt_is_idle(mt, local->fd)) { + extract_delayed_gestures(&gs, mt); + handle_gestures(local, &gs, &mt->caps); + } } } -- cgit v1.2.3