diff options
author | Liyang HU <github.com@liyang.hu> | 2021-02-20 19:53:53 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-20 14:53:53 -0500 |
commit | c4bd6af837ada55cd3cbc21f0e50d6a2d620bcf8 (patch) | |
tree | b4510734d4d0a90ae95ade91e8230221cf0f79f6 /tmk_core/common/action.c | |
parent | 2e4f0876151d7016172fa51d1588def1c96102fc (diff) |
tmk_core/common/action.c: refactor for code size; merge multiple `case`s into one (#11943)
* tmk_core/common/report.h: define `enum mouse_buttons` in terms of `#define MOUSE_BTN_MASK()`
* tmk_core/common/action.c: collapse multiple `case KC_MS_BTN[1-8]:` into single `MOUSE_BTN_MASK(action.key.code - KC_MS_BTN1)`
We all love tapping on our keyboards but this is taking the piss.
This saves ~134 bytes on my ATmega32.
Diffstat (limited to 'tmk_core/common/action.c')
-rw-r--r-- | tmk_core/common/action.c | 76 |
1 files changed, 12 insertions, 64 deletions
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 66411b4fd3..f53e3c7084 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -410,74 +410,22 @@ void process_action(keyrecord_t *record, action_t action) { case ACT_MOUSEKEY: if (event.pressed) { mousekey_on(action.key.code); - switch (action.key.code) { -# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) - case KC_MS_BTN1: - register_button(true, MOUSE_BTN1); - break; - case KC_MS_BTN2: - register_button(true, MOUSE_BTN2); - break; - case KC_MS_BTN3: - register_button(true, MOUSE_BTN3); - break; -# endif -# ifdef POINTING_DEVICE_ENABLE - case KC_MS_BTN4: - register_button(true, MOUSE_BTN4); - break; - case KC_MS_BTN5: - register_button(true, MOUSE_BTN5); - break; - case KC_MS_BTN6: - register_button(true, MOUSE_BTN6); - break; - case KC_MS_BTN7: - register_button(true, MOUSE_BTN7); - break; - case KC_MS_BTN8: - register_button(true, MOUSE_BTN8); - break; -# endif - default: - mousekey_send(); - break; - } } else { mousekey_off(action.key.code); - switch (action.key.code) { + } + switch (action.key.code) { # if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) - case KC_MS_BTN1: - register_button(false, MOUSE_BTN1); - break; - case KC_MS_BTN2: - register_button(false, MOUSE_BTN2); - break; - case KC_MS_BTN3: - register_button(false, MOUSE_BTN3); - break; -# endif -# ifdef POINTING_DEVICE_ENABLE - case KC_MS_BTN4: - register_button(false, MOUSE_BTN4); - break; - case KC_MS_BTN5: - register_button(false, MOUSE_BTN5); - break; - case KC_MS_BTN6: - register_button(false, MOUSE_BTN6); - break; - case KC_MS_BTN7: - register_button(false, MOUSE_BTN7); - break; - case KC_MS_BTN8: - register_button(false, MOUSE_BTN8); - break; +# ifdef POINTING_DEVICE_ENABLE + case KC_MS_BTN1 ... KC_MS_BTN8: +# else + case KC_MS_BTN1 ... KC_MS_BTN3: +# endif + register_button(event.pressed, MOUSE_BTN_MASK(action.key.code - KC_MS_BTN1)); + break; # endif - default: - mousekey_send(); - break; - } + default: + mousekey_send(); + break; } break; #endif |