diff options
| author | Henrik Rydberg <rydberg@euromail.se> | 2010-08-12 02:15:11 +0100 |
|---|---|---|
| committer | Henrik Rydberg <rydberg@euromail.se> | 2010-08-12 02:15:11 +0100 |
| commit | 4b21599b7ade620aa02b359335f618b5b10185da (patch) | |
| tree | 6d251c45e3ce65f98a1e612b339e26af2a6b81f0 | |
| parent | 45b9f485ae5b0a69d5e286b8f9cf5fb97c6c060a (diff) | |
the bug fix, raw material
| -rw-r--r-- | src/grail-api.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/grail-api.c b/src/grail-api.c index 7c054a9..03355dc 100644 --- a/src/grail-api.c +++ b/src/grail-api.c | |||
| @@ -82,10 +82,17 @@ static void tp_sync(struct touch_engine *engine, | |||
| 82 | evbuf_clear(&x->evbuf); | 82 | evbuf_clear(&x->evbuf); |
| 83 | return; | 83 | return; |
| 84 | } | 84 | } |
| 85 | if (hack > x->hack_status) { | ||
| 86 | ev = *syn; | ||
| 87 | ev.type = EV_KEY; | ||
| 88 | ev.code = BTN_TOUCH; | ||
| 89 | ev.value = hack; | ||
| 90 | ge->event(ge, &ev); | ||
| 91 | x->hack_status = hack; | ||
| 92 | nevent++; | ||
| 93 | } | ||
| 85 | while (!evbuf_empty(&x->evbuf)) { | 94 | while (!evbuf_empty(&x->evbuf)) { |
| 86 | evbuf_get(&x->evbuf, &ev); | 95 | evbuf_get(&x->evbuf, &ev); |
| 87 | if (!hack && ev.type == EV_ABS) | ||
| 88 | continue; | ||
| 89 | if (dofilt && grail_mask_get(filtered, ev.type)) | 96 | if (dofilt && grail_mask_get(filtered, ev.type)) |
| 90 | continue; | 97 | continue; |
| 91 | if (extra_filtered(&ev)) | 98 | if (extra_filtered(&ev)) |
| @@ -93,7 +100,7 @@ static void tp_sync(struct touch_engine *engine, | |||
| 93 | ge->event(ge, &ev); | 100 | ge->event(ge, &ev); |
| 94 | nevent++; | 101 | nevent++; |
| 95 | } | 102 | } |
| 96 | if (hack != x->hack_status) { | 103 | if (hack < x->hack_status) { |
| 97 | ev = *syn; | 104 | ev = *syn; |
| 98 | ev.type = EV_KEY; | 105 | ev.type = EV_KEY; |
| 99 | ev.code = BTN_TOUCH; | 106 | ev.code = BTN_TOUCH; |
