aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gestures.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gestures.c b/src/gestures.c
index 36d49f4..7346043 100644
--- a/src/gestures.c
+++ b/src/gestures.c
@@ -159,15 +159,19 @@ static void extract_buttons(struct Gestures *gs, struct MTouch* mt)
if (mt->mem.npoint == 3)
btdata = BITMASK(MT_BUTTON_MIDDLE);
}
- gs->btmask = (btdata ^ mt->mem.btdata) & BITONES(DIM_BUTTON);
- gs->btdata = btdata;
- mt->mem.btdata = btdata;
+ if (mt->state.button != mt->prev_state.button) {
+ gs->btmask = (btdata ^ mt->mem.btdata) & BITONES(DIM_BUTTON);
+ gs->btdata = btdata;
+ mt->mem.btdata = btdata;
+ }
}
/******************************************************/
static void extract_type(struct Gestures *gs, struct MTouch* mt)
{
+ if (gs->btmask)
+ SETBIT(gs->type, GS_BUTTON);
if (gs->dx || gs->dy) {
if (mt->mem.npoint == 1)
SETBIT(gs->type, GS_MOVE);