diff options
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) | |||
| 39 | CLEARBIT(hw->button, MT_BUTTON_RIGHT); | 39 | CLEARBIT(hw->button, MT_BUTTON_RIGHT); |
| 40 | break; | 40 | break; |
| 41 | case BTN_MT_REPORT_PACKET: | 41 | case BTN_MT_REPORT_PACKET: |
| 42 | hw->in_packet = ev->value; | ||
| 42 | if (ev->value) | 43 | if (ev->value) |
| 43 | hw->nfinger = 0; | 44 | hw->nfinger = 0; |
| 44 | break; | 45 | break; |
| 45 | case BTN_MT_REPORT_FINGER: | 46 | case BTN_MT_REPORT_FINGER: |
| 47 | hw->in_finger = ev->value; | ||
| 46 | if (!ev->value && hw->nfinger < DIM_FINGER) | 48 | if (!ev->value && hw->nfinger < DIM_FINGER) |
| 47 | hw->nfinger++; | 49 | hw->nfinger++; |
| 48 | break; | 50 | break; |
| 49 | } | 51 | } |
| 50 | break; | 52 | break; |
| 51 | case EV_ABS: | 53 | case EV_ABS: |
| 54 | if (!hw->in_packet || !hw->in_finger) | ||
| 55 | break; | ||
| 52 | if (hw->nfinger == DIM_FINGER) | 56 | if (hw->nfinger == DIM_FINGER) |
| 53 | break; | 57 | break; |
| 54 | switch (ev->code) { | 58 | 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 { | |||
| 26 | struct FingerData finger[DIM_FINGER]; | 26 | struct FingerData finger[DIM_FINGER]; |
| 27 | button_t button; | 27 | button_t button; |
| 28 | int nfinger; | 28 | int nfinger; |
| 29 | bool in_packet, in_finger; | ||
| 29 | }; | 30 | }; |
| 30 | 31 | ||
| 31 | //////////////////////////////////////////////////////// | 32 | //////////////////////////////////////////////////////// |
