diff options
author | Henrik Rydberg <rydberg@euromail.se> | 2008-11-09 03:37:55 +0100 |
---|---|---|
committer | Henrik Rydberg <rydberg@euromail.se> | 2008-11-09 03:37:55 +0100 |
commit | 84088723ed0c5f59335213c12f4b9dbf58af8270 (patch) | |
tree | 3b7d1d000d005676b4292084fafb86b910bc9026 /src | |
parent | 84f1dbb29462ec91850c04e0bba256668e584e00 (diff) | |
download | xorg-input-kobomultitouch-84088723ed0c5f59335213c12f4b9dbf58af8270.tar.gz xorg-input-kobomultitouch-84088723ed0c5f59335213c12f4b9dbf58af8270.tar.bz2 xorg-input-kobomultitouch-84088723ed0c5f59335213c12f4b9dbf58af8270.zip |
drop packets out of sync
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Diffstat (limited to 'src')
-rw-r--r-- | src/hwdata.c | 4 | ||||
-rw-r--r-- | src/hwdata.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/hwdata.c b/src/hwdata.c index d39211f..cd93fe0 100644 --- a/src/hwdata.c +++ b/src/hwdata.c @@ -39,16 +39,20 @@ bool read_hwdata(struct HWData *hw, const struct input_event* ev) CLEARBIT(hw->button, MT_BUTTON_RIGHT); break; case BTN_MT_REPORT_PACKET: + hw->in_packet = ev->value; if (ev->value) hw->nfinger = 0; break; case BTN_MT_REPORT_FINGER: + hw->in_finger = ev->value; if (!ev->value && hw->nfinger < DIM_FINGER) hw->nfinger++; break; } break; case EV_ABS: + if (!hw->in_packet || !hw->in_finger) + break; if (hw->nfinger == DIM_FINGER) break; switch (ev->code) { diff --git a/src/hwdata.h b/src/hwdata.h index f91f11b..a5f9bf5 100644 --- a/src/hwdata.h +++ b/src/hwdata.h @@ -26,6 +26,7 @@ struct HWData { struct FingerData finger[DIM_FINGER]; button_t button; int nfinger; + bool in_packet, in_finger; }; //////////////////////////////////////////////////////// |