summaryrefslogtreecommitdiff
path: root/src/grail-gestures.c
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@bitmath.org>2010-08-04 22:06:54 +0200
committerHenrik Rydberg <rydberg@euromail.se>2010-08-05 22:48:38 +0200
commit88dada465e0fad35b5a535a042e0a93046ffff7c (patch)
treec191b61c7b55fb5cfb08b8baae6bc11a25062ca6 /src/grail-gestures.c
parent697b5b5c7d2b1c46387061fcbed24cbee51d98ce (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.c20
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
140void gru_motion(struct grail *ge, 140void 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