diff options
Diffstat (limited to 'src/hwdata.c')
| -rw-r--r-- | src/hwdata.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/hwdata.c b/src/hwdata.c index 029d68a..1882910 100644 --- a/src/hwdata.c +++ b/src/hwdata.c | |||
| @@ -11,7 +11,6 @@ void init_hwdata(struct HWData *hw) | |||
| 11 | 11 | ||
| 12 | bool read_hwdata(struct HWData *hw, const struct input_event* ev) | 12 | bool read_hwdata(struct HWData *hw, const struct input_event* ev) |
| 13 | { | 13 | { |
| 14 | bool on = ev->value != 0; | ||
| 15 | switch (ev->type) { | 14 | switch (ev->type) { |
| 16 | case EV_SYN: | 15 | case EV_SYN: |
| 17 | switch (ev->code) { | 16 | switch (ev->code) { |
| @@ -22,20 +21,29 @@ bool read_hwdata(struct HWData *hw, const struct input_event* ev) | |||
| 22 | case EV_KEY: | 21 | case EV_KEY: |
| 23 | switch (ev->code) { | 22 | switch (ev->code) { |
| 24 | case BTN_LEFT: | 23 | case BTN_LEFT: |
| 25 | hw->button[MT_BUTTON_LEFT] = on; | 24 | if (ev->value) |
| 25 | SETBIT(hw->button, MT_BUTTON_LEFT); | ||
| 26 | else | ||
| 27 | CLEARBIT(hw->button, MT_BUTTON_LEFT); | ||
| 26 | break; | 28 | break; |
| 27 | case BTN_MIDDLE: | 29 | case BTN_MIDDLE: |
| 28 | hw->button[MT_BUTTON_MIDDLE] = on; | 30 | if (ev->value) |
| 31 | SETBIT(hw->button, MT_BUTTON_MIDDLE); | ||
| 32 | else | ||
| 33 | CLEARBIT(hw->button, MT_BUTTON_MIDDLE); | ||
| 29 | break; | 34 | break; |
| 30 | case BTN_RIGHT: | 35 | case BTN_RIGHT: |
| 31 | hw->button[MT_BUTTON_RIGHT] = on; | 36 | if (ev->value) |
| 37 | SETBIT(hw->button, MT_BUTTON_RIGHT); | ||
| 38 | else | ||
| 39 | CLEARBIT(hw->button, MT_BUTTON_RIGHT); | ||
| 32 | break; | 40 | break; |
| 33 | case BTN_MT_REPORT_PACKET: | 41 | case BTN_MT_REPORT_PACKET: |
| 34 | if (on) | 42 | if (ev->value) |
| 35 | hw->nfinger = 0; | 43 | hw->nfinger = 0; |
| 36 | break; | 44 | break; |
| 37 | case BTN_MT_REPORT_FINGER: | 45 | case BTN_MT_REPORT_FINGER: |
| 38 | if (!on && hw->nfinger < DIM_FINGER) | 46 | if (!ev->value && hw->nfinger < DIM_FINGER) |
| 39 | hw->nfinger++; | 47 | hw->nfinger++; |
| 40 | break; | 48 | break; |
| 41 | } | 49 | } |
