summaryrefslogtreecommitdiff
path: root/src/grail-gestures.c
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2010-08-07 16:47:25 +0200
committerHenrik Rydberg <rydberg@euromail.se>2010-08-07 16:47:25 +0200
commit1681e90809ae248299bc5be5a9af12e871544a7d (patch)
tree3a3b57747350b901a6a1eb3b954dbf60747c3957 /src/grail-gestures.c
parentd148161bfd304ddb155d99fb1eda7b270da8054a (diff)
treat one-finger moves in move model and simplify tapping logic
Diffstat (limited to 'src/grail-gestures.c')
-rw-r--r--src/grail-gestures.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/grail-gestures.c b/src/grail-gestures.c
index cb7e5a3..0c0efdb 100644
--- a/src/grail-gestures.c
+++ b/src/grail-gestures.c
@@ -144,13 +144,23 @@ void gru_motion(struct grail *ge,
144 struct move_model *state = &gru->move; 144 struct move_model *state = &gru->move;
145 float x, y, r, a; 145 float x, y, r, a;
146 compute_position(&x, &y, frame); 146 compute_position(&x, &y, frame);
147 if (frame->nactive < 2 || frame->ncreate || frame->ndestroy) { 147 if (frame->ncreate || frame->ndestroy) {
148 r = compute_radius(x, y, frame); 148 r = compute_radius(x, y, frame);
149 a = 0; 149 a = 0;
150 move_reset(&state->x, x); 150 move_reset(&state->x, x);
151 move_reset(&state->y, y); 151 move_reset(&state->y, y);
152 move_reset(&state->r, r); 152 move_reset(&state->r, r);
153 move_reset(&state->a, a); 153 move_reset(&state->a, a);
154 state->single = 0;
155 state->multi = 0;
156 } else if (frame->nactive < 2) {
157 r = 0;
158 a = 0;
159 move_update(&state->x, x);
160 move_update(&state->y, y);
161 move_reset(&state->r, r);
162 move_reset(&state->a, a);
163 state->single = 1;
154 state->multi = 0; 164 state->multi = 0;
155 } else { 165 } else {
156 x = move_filter(&state->x, x); 166 x = move_filter(&state->x, x);
@@ -163,6 +173,7 @@ void gru_motion(struct grail *ge,
163 move_update(&state->y, y); 173 move_update(&state->y, y);
164 move_update(&state->r, r); 174 move_update(&state->r, r);
165 move_update(&state->a, a); 175 move_update(&state->a, a);
176 state->single = 0;
166 state->multi = 1; 177 state->multi = 1;
167 } 178 }
168 state->ntouch = frame->nactive; 179 state->ntouch = frame->nactive;