diff options
| author | Manna Harbour <51143715+manna-harbour@users.noreply.github.com> | 2020-07-03 03:04:55 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-02 18:04:55 +0100 |
| commit | d1819f02dfac40408ceb51a59c32eb8e898e8810 (patch) | |
| tree | 3444801934dbac2c35e2183f5ac7589600d67ad3 | |
| parent | e1cdfdc0e7b177ea8b4f3626959dabf316dd3b0c (diff) | |
| download | qmk_firmware-d1819f02dfac40408ceb51a59c32eb8e898e8810.tar.gz qmk_firmware-d1819f02dfac40408ceb51a59c32eb8e898e8810.zip | |
Fix sharing of mouse button state from mousekeys to ps2_mouse (#9124)
With this change, when ps2_mouse is disabled, mousekeys works as usual. With
ps2_mouse enabled, mousekeys button state is shared with ps2_mouse for clicking,
dragging, and scrolling, mousekeys clicks are produced by ps2_mouse only, and
mouskeys button state is transferred to mousekeys without generating clicks to
enable mousekeys dragging.
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
| -rw-r--r-- | tmk_core/common/action.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 82be9cc92..69bcf8e56 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c | |||
| @@ -400,7 +400,9 @@ void process_action(keyrecord_t *record, action_t action) { | |||
| 400 | /* Mouse key */ | 400 | /* Mouse key */ |
| 401 | case ACT_MOUSEKEY: | 401 | case ACT_MOUSEKEY: |
| 402 | if (event.pressed) { | 402 | if (event.pressed) { |
| 403 | mousekey_on(action.key.code); | ||
| 403 | switch (action.key.code) { | 404 | switch (action.key.code) { |
| 405 | # ifdef PS2_MOUSE_ENABLE | ||
| 404 | case KC_MS_BTN1: | 406 | case KC_MS_BTN1: |
| 405 | tp_buttons |= (1 << 0); | 407 | tp_buttons |= (1 << 0); |
| 406 | break; | 408 | break; |
| @@ -410,13 +412,15 @@ void process_action(keyrecord_t *record, action_t action) { | |||
| 410 | case KC_MS_BTN3: | 412 | case KC_MS_BTN3: |
| 411 | tp_buttons |= (1 << 2); | 413 | tp_buttons |= (1 << 2); |
| 412 | break; | 414 | break; |
| 415 | # endif | ||
| 413 | default: | 416 | default: |
| 417 | mousekey_send(); | ||
| 414 | break; | 418 | break; |
| 415 | } | 419 | } |
| 416 | mousekey_on(action.key.code); | ||
| 417 | mousekey_send(); | ||
| 418 | } else { | 420 | } else { |
| 421 | mousekey_off(action.key.code); | ||
| 419 | switch (action.key.code) { | 422 | switch (action.key.code) { |
| 423 | # ifdef PS2_MOUSE_ENABLE | ||
| 420 | case KC_MS_BTN1: | 424 | case KC_MS_BTN1: |
| 421 | tp_buttons &= ~(1 << 0); | 425 | tp_buttons &= ~(1 << 0); |
| 422 | break; | 426 | break; |
| @@ -426,11 +430,11 @@ void process_action(keyrecord_t *record, action_t action) { | |||
| 426 | case KC_MS_BTN3: | 430 | case KC_MS_BTN3: |
| 427 | tp_buttons &= ~(1 << 2); | 431 | tp_buttons &= ~(1 << 2); |
| 428 | break; | 432 | break; |
| 433 | # endif | ||
| 429 | default: | 434 | default: |
| 435 | mousekey_send(); | ||
| 430 | break; | 436 | break; |
| 431 | } | 437 | } |
| 432 | mousekey_off(action.key.code); | ||
| 433 | mousekey_send(); | ||
| 434 | } | 438 | } |
| 435 | break; | 439 | break; |
| 436 | #endif | 440 | #endif |
