diff options
| author | Henrik Rydberg <rydberg@euromail.se> | 2010-08-10 14:40:08 +0100 |
|---|---|---|
| committer | Henrik Rydberg <rydberg@euromail.se> | 2010-08-10 15:04:18 +0100 |
| commit | a9a0e2c02bdd6e9dfdff523705e7afcb47e82adb (patch) | |
| tree | 27776cdb622750ab0610322d9e17877d34e11eca /src/grail-gestures.c | |
| parent | 1e8aa1edc281132efa485f41741193af8ee13c8e (diff) | |
Filter abs events by default in grail-gesture
Also connect the timeout for press with the timeout of tapping.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Diffstat (limited to 'src/grail-gestures.c')
| -rw-r--r-- | src/grail-gestures.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/grail-gestures.c b/src/grail-gestures.c index c743544..1d49765 100644 --- a/src/grail-gestures.c +++ b/src/grail-gestures.c | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | 25 | ||
| 26 | static const float FM_SN[DIM_FM] = { 1000, 1000, 200, 1000 }; | 26 | static const float FM_SN[DIM_FM] = { 1000, 1000, 200, 1000 }; |
| 27 | static const float FM_BAR[DIM_FM] = { 50, 50, 30, 50 }; | 27 | static const float FM_BAR[DIM_FM] = { 50, 50, 30, 50 }; |
| 28 | static const grail_time_t FM_BAR_MS[DIM_FM] = { 300, 300, 10000, 10000 }; | ||
| 28 | static const grail_time_t SAMPLE_MS = 10; | 29 | static const grail_time_t SAMPLE_MS = 10; |
| 29 | static const float EPS = 1e-5; | 30 | static const float EPS = 1e-5; |
| 30 | 31 | ||
| @@ -105,6 +106,7 @@ static void move_reset(struct move_model *m, int i, float x, grail_time_t t) | |||
| 105 | fm->velocity = 0; | 106 | fm->velocity = 0; |
| 106 | fm->value = x; | 107 | fm->value = x; |
| 107 | fm->original = x; | 108 | fm->original = x; |
| 109 | fm->original_ms = t; | ||
| 108 | fm->sample = x; | 110 | fm->sample = x; |
| 109 | fm->sample_ms = t; | 111 | fm->sample_ms = t; |
| 110 | m->tickle &= ~(1 << i); | 112 | m->tickle &= ~(1 << i); |
| @@ -130,7 +132,8 @@ static void move_update(struct move_model *m, int i, float x, grail_time_t t) | |||
| 130 | if (m->active & (1 << i)) | 132 | if (m->active & (1 << i)) |
| 131 | return; | 133 | return; |
| 132 | fm->action_delta = x - fm->original; | 134 | fm->action_delta = x - fm->original; |
| 133 | if (fabs(fm->action_delta) > fm->bar) | 135 | if (fabs(fm->action_delta) > fm->bar || |
| 136 | t - fm->original_ms > fm->bar_ms) | ||
| 134 | m->active |= (1 << i); | 137 | m->active |= (1 << i); |
| 135 | else | 138 | else |
| 136 | fm->action_delta = 0; | 139 | fm->action_delta = 0; |
| @@ -151,6 +154,7 @@ void gru_init_motion(struct grail *ge) | |||
| 151 | for (i = 0; i < DIM_FM; i++) { | 154 | for (i = 0; i < DIM_FM; i++) { |
| 152 | m->fm[i].fuzz = D[i] / FM_SN[i]; | 155 | m->fm[i].fuzz = D[i] / FM_SN[i]; |
| 153 | m->fm[i].bar = D[i] / FM_BAR[i]; | 156 | m->fm[i].bar = D[i] / FM_BAR[i]; |
| 157 | m->fm[i].bar_ms = FM_BAR_MS[i]; | ||
| 154 | } | 158 | } |
| 155 | } | 159 | } |
| 156 | 160 | ||
