aboutsummaryrefslogtreecommitdiffstats
path: root/src/gestures.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gestures.c')
-rw-r--r--src/gestures.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gestures.c b/src/gestures.c
index c837d6c..e032214 100644
--- a/src/gestures.c
+++ b/src/gestures.c
@@ -50,16 +50,20 @@ static void extract_movement(struct Gestures *gs, struct MTouch* mt)
static void extract_buttons(struct Gestures *gs, struct MTouch* mt)
{
+ unsigned btdata = mt->state.button & BITONES(DIM_BUTTON);
if (mt->state.button == BITMASK(MT_BUTTON_LEFT)) {
if (mt->state.nfinger == 2)
- mt->state.button = BITMASK(MT_BUTTON_RIGHT);
+ btdata = BITMASK(MT_BUTTON_RIGHT);
if (mt->state.nfinger == 3)
- mt->state.button = BITMASK(MT_BUTTON_MIDDLE);
+ btdata = BITMASK(MT_BUTTON_MIDDLE);
}
- gs->btmask = (mt->state.button ^ mt->prev_state.button) & BITONES(DIM_BUTTON);
- gs->btdata = mt->state.button & BITONES(DIM_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->dx || gs->dy) {