aboutsummaryrefslogtreecommitdiffstats
path: root/tmk_core
diff options
context:
space:
mode:
authorGravatar Manna Harbour <51143715+manna-harbour@users.noreply.github.com>2020-07-03 03:04:55 +1000
committerGravatar GitHub <noreply@github.com>2020-07-02 18:04:55 +0100
commitd1819f02dfac40408ceb51a59c32eb8e898e8810 (patch)
tree3444801934dbac2c35e2183f5ac7589600d67ad3 /tmk_core
parente1cdfdc0e7b177ea8b4f3626959dabf316dd3b0c (diff)
downloadqmk_firmware-d1819f02dfac40408ceb51a59c32eb8e898e8810.tar.gz
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>
Diffstat (limited to 'tmk_core')
-rw-r--r--tmk_core/common/action.c12
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) {
/* Mouse key */
case ACT_MOUSEKEY:
if (event.pressed) {
+ mousekey_on(action.key.code);
switch (action.key.code) {
+# ifdef PS2_MOUSE_ENABLE
case KC_MS_BTN1:
tp_buttons |= (1 << 0);
break;
@@ -410,13 +412,15 @@ void process_action(keyrecord_t *record, action_t action) {
case KC_MS_BTN3:
tp_buttons |= (1 << 2);
break;
+# endif
default:
+ mousekey_send();
break;
}
- mousekey_on(action.key.code);
- mousekey_send();
} else {
+ mousekey_off(action.key.code);
switch (action.key.code) {
+# ifdef PS2_MOUSE_ENABLE
case KC_MS_BTN1:
tp_buttons &= ~(1 << 0);
break;
@@ -426,11 +430,11 @@ void process_action(keyrecord_t *record, action_t action) {
case KC_MS_BTN3:
tp_buttons &= ~(1 << 2);
break;
+# endif
default:
+ mousekey_send();
break;
}
- mousekey_off(action.key.code);
- mousekey_send();
}
break;
#endif