summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/grail-inserter.c4
-rw-r--r--src/grail-inserter.h1
2 files changed, 4 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;
diff --git a/src/grail-inserter.h b/src/grail-inserter.h
index d1faa0a..55e94a3 100644
--- a/src/grail-inserter.h
+++ b/src/grail-inserter.h
@@ -39,6 +39,7 @@ struct slot_state {
39 int priority; 39 int priority;
40 int slice; 40 int slice;
41 int timeout; 41 int timeout;
42 int sent;
42 int id; 43 int id;
43 int status; 44 int status;
44 int nclient; 45 int nclient;