diff options
Diffstat (limited to 'src/grail-inserter.c')
| -rw-r--r-- | src/grail-inserter.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/grail-inserter.c b/src/grail-inserter.c index fc9076a..651d08d 100644 --- a/src/grail-inserter.c +++ b/src/grail-inserter.c | |||
| @@ -174,12 +174,13 @@ void gin_frame_end(struct grail *ge, const struct utouch_frame *frame) | |||
| 174 | struct slot_state *s = &gin->state[i]; | 174 | struct slot_state *s = &gin->state[i]; |
| 175 | struct gesture_event ev; | 175 | struct gesture_event ev; |
| 176 | grail_mask_set(gin->types, s->type); | 176 | grail_mask_set(gin->types, s->type); |
| 177 | if (s->priority < hold[s->slice]) | 177 | if (s->priority < hold[s->slice] && !s->sent) |
| 178 | continue; | 178 | continue; |
| 179 | while (!gebuf_empty(&s->buf)) { | 179 | while (!gebuf_empty(&s->buf)) { |
| 180 | gebuf_get(&s->buf, &ev); | 180 | gebuf_get(&s->buf, &ev); |
| 181 | gin_send_event(ge, s, &ev, frame); | 181 | gin_send_event(ge, s, &ev, frame); |
| 182 | } | 182 | } |
| 183 | s->sent = 1; | ||
| 183 | } | 184 | } |
| 184 | 185 | ||
| 185 | grail_mask_foreach(i, gin->used, sizeof(gin->used)) { | 186 | grail_mask_foreach(i, gin->used, sizeof(gin->used)) { |
| @@ -208,6 +209,7 @@ int gin_gid_begin(struct grail *ge, int type, int priority, | |||
| 208 | s->slice = 0; | 209 | s->slice = 0; |
| 209 | } | 210 | } |
| 210 | s->timeout = 0; | 211 | s->timeout = 0; |
| 212 | s->sent = 0; | ||
| 211 | s->id = gin->gestureid++ & MAX_GESTURE_ID; | 213 | s->id = gin->gestureid++ & MAX_GESTURE_ID; |
| 212 | s->status = GRAIL_STATUS_BEGIN; | 214 | s->status = GRAIL_STATUS_BEGIN; |
| 213 | s->nclient = 0; | 215 | s->nclient = 0; |
