diff options
| author | Henrik Rydberg <rydberg@bitmath.org> | 2010-08-04 22:06:54 +0200 |
|---|---|---|
| committer | Henrik Rydberg <rydberg@euromail.se> | 2010-08-05 22:48:38 +0200 |
| commit | 88dada465e0fad35b5a535a042e0a93046ffff7c (patch) | |
| tree | c191b61c7b55fb5cfb08b8baae6bc11a25062ca6 /src/grail-gestures.c | |
| parent | 697b5b5c7d2b1c46387061fcbed24cbee51d98ce (diff) | |
Cleanup tapping and gesture code
Improved tapping quality with this patch.
Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>
Diffstat (limited to 'src/grail-gestures.c')
| -rw-r--r-- | src/grail-gestures.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/grail-gestures.c b/src/grail-gestures.c index 27f160b..5ab12a8 100644 --- a/src/grail-gestures.c +++ b/src/grail-gestures.c | |||
| @@ -134,7 +134,7 @@ void gru_init_motion(struct grail *ge, const struct touch_dev_caps *caps) | |||
| 134 | state->y.bar = BAR_MOVE * state->y.fuzz; | 134 | state->y.bar = BAR_MOVE * state->y.fuzz; |
| 135 | state->r.bar = BAR_ZOOM * state->r.fuzz; | 135 | state->r.bar = BAR_ZOOM * state->r.fuzz; |
| 136 | state->a.bar = BAR_ROTATE * state->a.fuzz; | 136 | state->a.bar = BAR_ROTATE * state->a.fuzz; |
| 137 | state->motion = 0; | 137 | state->multi = 0; |
| 138 | } | 138 | } |
| 139 | 139 | ||
| 140 | void gru_motion(struct grail *ge, | 140 | void gru_motion(struct grail *ge, |
| @@ -142,17 +142,16 @@ void gru_motion(struct grail *ge, | |||
| 142 | { | 142 | { |
| 143 | struct gesture_recognizer *gru = ge->gru; | 143 | struct gesture_recognizer *gru = ge->gru; |
| 144 | struct move_model *state = &gru->move; | 144 | struct move_model *state = &gru->move; |
| 145 | int na = 0, nt = frame->nactive; | ||
| 146 | float x, y, r, a; | 145 | float x, y, r, a; |
| 147 | compute_position(&x, &y, frame); | 146 | compute_position(&x, &y, frame); |
| 148 | if (nt < 2 || frame->ncreate || frame->ndestroy) { | 147 | if (frame->nactive < 2 || frame->ncreate || frame->ndestroy) { |
| 149 | r = compute_radius(x, y, frame); | 148 | r = compute_radius(x, y, frame); |
| 150 | a = 0; | 149 | a = 0; |
| 151 | move_reset(&state->x, x); | 150 | move_reset(&state->x, x); |
| 152 | move_reset(&state->y, y); | 151 | move_reset(&state->y, y); |
| 153 | move_reset(&state->r, r); | 152 | move_reset(&state->r, r); |
| 154 | move_reset(&state->a, a); | 153 | move_reset(&state->a, a); |
| 155 | state->motion = 0; | 154 | state->multi = 0; |
| 156 | } else { | 155 | } else { |
| 157 | x = move_filter(&state->x, x); | 156 | x = move_filter(&state->x, x); |
| 158 | y = move_filter(&state->y, y); | 157 | y = move_filter(&state->y, y); |
| @@ -160,14 +159,13 @@ void gru_motion(struct grail *ge, | |||
| 160 | r = move_filter(&state->r, r); | 159 | r = move_filter(&state->r, r); |
| 161 | a = state->a.val + compute_rotation(x, y, r, &gru->frame, frame); | 160 | a = state->a.val + compute_rotation(x, y, r, &gru->frame, frame); |
| 162 | //a = move_filter(&state->a, a); | 161 | //a = move_filter(&state->a, a); |
| 163 | na += move_update(&state->x, x); | 162 | move_update(&state->x, x); |
| 164 | na += move_update(&state->y, y); | 163 | move_update(&state->y, y); |
| 165 | na += move_update(&state->r, r); | 164 | move_update(&state->r, r); |
| 166 | na += move_update(&state->a, a); | 165 | move_update(&state->a, a); |
| 167 | state->motion = 1; | 166 | state->multi = 1; |
| 168 | } | 167 | } |
| 169 | state->nactive = na; | 168 | state->ntouch = frame->nactive; |
| 170 | state->ntouch = nt; | ||
| 171 | state->time = frame->time; | 169 | state->time = frame->time; |
| 172 | } | 170 | } |
| 173 | 171 | ||
