From 31a96545e433128af34f08a0bb993bbc54e90df1 Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Thu, 13 May 2010 23:21:37 +0200 Subject: Disable motion with resting thumbs Disable motion gestures whenever one of the pointing fingers is a thumb. Movement is skipped rather than held, minimizing unpredictable movement after thumb release. Signed-off-by: Henrik Rydberg --- src/gestures.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/gestures.c') diff --git a/src/gestures.c b/src/gestures.c index b6c3bf4..d061f93 100644 --- a/src/gestures.c +++ b/src/gestures.c @@ -25,6 +25,7 @@ #include "gestures.h" +static const int FINGER_THUMB_MS = 400; /** * extract_buttons * @@ -83,11 +84,19 @@ static void extract_movement(struct Gestures *gs, struct MTouch* mt) ymove /= nmove; if (nmove == 1) { + if (mt->mem.moving & mt->mem.thumb) { + mt_skip_movement(mt, FINGER_THUMB_MS); + return; + } gs->dx = xmove; gs->dy = ymove; if (gs->dx || gs->dy) SETBIT(gs->type, GS_MOVE); } else { + if (mt->mem.moving & mt->mem.thumb) { + mt_skip_movement(mt, FINGER_THUMB_MS); + return; + } gs->dx = xmove; gs->dy = ymove; if (abs(gs->dx) > abs(gs->dy)) { -- cgit v1.2.3