diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gestures.c | 10 |
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) | |||
| 159 | if (mt->mem.npoint == 3) | 159 | if (mt->mem.npoint == 3) |
| 160 | btdata = BITMASK(MT_BUTTON_MIDDLE); | 160 | btdata = BITMASK(MT_BUTTON_MIDDLE); |
| 161 | } | 161 | } |
| 162 | gs->btmask = (btdata ^ mt->mem.btdata) & BITONES(DIM_BUTTON); | 162 | if (mt->state.button != mt->prev_state.button) { |
| 163 | gs->btdata = btdata; | 163 | gs->btmask = (btdata ^ mt->mem.btdata) & BITONES(DIM_BUTTON); |
| 164 | mt->mem.btdata = btdata; | 164 | gs->btdata = btdata; |
| 165 | mt->mem.btdata = btdata; | ||
| 166 | } | ||
| 165 | } | 167 | } |
| 166 | 168 | ||
| 167 | /******************************************************/ | 169 | /******************************************************/ |
| 168 | 170 | ||
| 169 | static void extract_type(struct Gestures *gs, struct MTouch* mt) | 171 | static void extract_type(struct Gestures *gs, struct MTouch* mt) |
| 170 | { | 172 | { |
| 173 | if (gs->btmask) | ||
| 174 | SETBIT(gs->type, GS_BUTTON); | ||
| 171 | if (gs->dx || gs->dy) { | 175 | if (gs->dx || gs->dy) { |
| 172 | if (mt->mem.npoint == 1) | 176 | if (mt->mem.npoint == 1) |
| 173 | SETBIT(gs->type, GS_MOVE); | 177 | SETBIT(gs->type, GS_MOVE); |
