1
0
Fork 0

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>
This commit is contained in:
Manna Harbour 2020-07-03 03:04:55 +10:00 committed by GitHub
parent e1cdfdc0e7
commit d1819f02df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -400,7 +400,9 @@ void process_action(keyrecord_t *record, action_t action) {
/* Mouse key */ /* Mouse key */
case ACT_MOUSEKEY: case ACT_MOUSEKEY:
if (event.pressed) { if (event.pressed) {
mousekey_on(action.key.code);
switch (action.key.code) { switch (action.key.code) {
# ifdef PS2_MOUSE_ENABLE
case KC_MS_BTN1: case KC_MS_BTN1:
tp_buttons |= (1 << 0); tp_buttons |= (1 << 0);
break; break;
@ -410,13 +412,15 @@ void process_action(keyrecord_t *record, action_t action) {
case KC_MS_BTN3: case KC_MS_BTN3:
tp_buttons |= (1 << 2); tp_buttons |= (1 << 2);
break; break;
# endif
default: default:
mousekey_send();
break; break;
} }
mousekey_on(action.key.code);
mousekey_send();
} else { } else {
mousekey_off(action.key.code);
switch (action.key.code) { switch (action.key.code) {
# ifdef PS2_MOUSE_ENABLE
case KC_MS_BTN1: case KC_MS_BTN1:
tp_buttons &= ~(1 << 0); tp_buttons &= ~(1 << 0);
break; break;
@ -426,11 +430,11 @@ void process_action(keyrecord_t *record, action_t action) {
case KC_MS_BTN3: case KC_MS_BTN3:
tp_buttons &= ~(1 << 2); tp_buttons &= ~(1 << 2);
break; break;
# endif
default: default:
mousekey_send();
break; break;
} }
mousekey_off(action.key.code);
mousekey_send();
} }
break; break;
#endif #endif