diff options
| author | Henrik Rydberg <rydberg@euromail.se> | 2010-08-07 16:47:25 +0200 |
|---|---|---|
| committer | Henrik Rydberg <rydberg@euromail.se> | 2010-08-07 16:47:25 +0200 |
| commit | 1681e90809ae248299bc5be5a9af12e871544a7d (patch) | |
| tree | 3a3b57747350b901a6a1eb3b954dbf60747c3957 /src/grail-gestures.c | |
| parent | d148161bfd304ddb155d99fb1eda7b270da8054a (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.c | 13 |
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; |
