Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Normalise mouse keycodes #23975

Merged
merged 5 commits into from
Jul 3, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update mouse keycodes in core
  • Loading branch information
fauxpark committed Jun 22, 2024
commit 53ae1f9b7c46ac0abd99dfd5cc82fca0d45e3a75
2 changes: 1 addition & 1 deletion drivers/sensors/cirque_pinnacle_gestures.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ typedef struct {
# ifndef CIRQUE_PINNACLE_TAPPING_TERM
# include "action.h"
# include "action_tapping.h"
# define CIRQUE_PINNACLE_TAPPING_TERM GET_TAPPING_TERM(KC_BTN1, &(keyrecord_t){})
# define CIRQUE_PINNACLE_TAPPING_TERM GET_TAPPING_TERM(QK_MOUSE_BUTTON_1, &(keyrecord_t){})
# endif
# ifndef CIRQUE_PINNACLE_TOUCH_DEBOUNCE
# define CIRQUE_PINNACLE_TOUCH_DEBOUNCE (CIRQUE_PINNACLE_TAPPING_TERM * 8)
Expand Down
6 changes: 3 additions & 3 deletions quantum/action.c
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ void register_mouse(uint8_t mouse_keycode, bool pressed) {
// should mousekeys send report, or does something else handle this?
switch (mouse_keycode) {
# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE)
case KC_MS_BTN1 ... KC_MS_BTN8:
case QK_MOUSE_BUTTON_1 ... QK_MOUSE_BUTTON_8:
// let pointing device handle the buttons
// expand if/when it handles more of the code
# if defined(POINTING_DEVICE_ENABLE)
Expand All @@ -351,8 +351,8 @@ void register_mouse(uint8_t mouse_keycode, bool pressed) {

#ifdef PS2_MOUSE_ENABLE
// make sure that ps2 mouse has button report synced
if (KC_MS_BTN1 <= mouse_keycode && mouse_keycode <= KC_MS_BTN3) {
uint8_t tmp_button_msk = MOUSE_BTN_MASK(mouse_keycode - KC_MS_BTN1);
if (QK_MOUSE_BUTTON_1 <= mouse_keycode && mouse_keycode <= QK_MOUSE_BUTTON_3) {
uint8_t tmp_button_msk = MOUSE_BTN_MASK(mouse_keycode - QK_MOUSE_BUTTON_1);
tp_buttons = pressed ? tp_buttons | tmp_button_msk : tp_buttons & ~tmp_button_msk;
}
#endif
Expand Down
4 changes: 2 additions & 2 deletions quantum/encoder.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,15 +160,15 @@ __attribute__((weak)) bool encoder_update_kb(uint8_t index, bool clockwise) {
# if defined(EXTRAKEY_ENABLE)
tap_code_delay(KC_VOLU, 10);
# elif defined(MOUSEKEY_ENABLE)
tap_code_delay(KC_MS_WH_UP, 10);
tap_code_delay(QK_MOUSE_WHEEL_UP, 10);
# else
tap_code_delay(KC_PGDN, 10);
# endif
} else {
# if defined(EXTRAKEY_ENABLE)
tap_code_delay(KC_VOLD, 10);
# elif defined(MOUSEKEY_ENABLE)
tap_code_delay(KC_MS_WH_DOWN, 10);
tap_code_delay(QK_MOUSE_WHEEL_DOWN, 10);
# else
tap_code_delay(KC_PGUP, 10);
# endif
Expand Down
8 changes: 4 additions & 4 deletions quantum/keycode.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF)

#define IS_MOUSEKEY(code) IS_MOUSE_KEYCODE(code)
#define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT)
#define IS_MOUSEKEY_BUTTON(code) (KC_MS_BTN1 <= (code) && (code) <= KC_MS_BTN8)
#define IS_MOUSEKEY_WHEEL(code) (KC_MS_WH_UP <= (code) && (code) <= KC_MS_WH_RIGHT)
#define IS_MOUSEKEY_ACCEL(code) (KC_MS_ACCEL0 <= (code) && (code) <= KC_MS_ACCEL2)
#define IS_MOUSEKEY_MOVE(code) (QK_MOUSE_CURSOR_UP <= (code) && (code) <= QK_MOUSE_CURSOR_RIGHT)
#define IS_MOUSEKEY_BUTTON(code) (QK_MOUSE_BUTTON_1 <= (code) && (code) <= QK_MOUSE_BUTTON_8)
#define IS_MOUSEKEY_WHEEL(code) (QK_MOUSE_WHEEL_UP <= (code) && (code) <= QK_MOUSE_WHEEL_RIGHT)
#define IS_MOUSEKEY_ACCEL(code) (QK_MOUSE_ACCELERATION_0 <= (code) && (code) <= QK_MOUSE_ACCELERATION_2)

#define MOD_BIT(code) (1 << ((code)&0x07))

Expand Down
112 changes: 56 additions & 56 deletions quantum/mousekey.c
Original file line number Diff line number Diff line change
Expand Up @@ -407,86 +407,86 @@ void mousekey_on(uint8_t code) {
# ifdef MOUSEKEY_INERTIA

// initial keypress sets impulse and activates first frame of movement
if ((code == KC_MS_UP) || (code == KC_MS_DOWN)) {
mousekey_y_dir = (code == KC_MS_DOWN) ? 1 : -1;
if ((code == QK_MOUSE_CURSOR_UP) || (code == QK_MOUSE_CURSOR_DOWN)) {
mousekey_y_dir = (code == QK_MOUSE_CURSOR_DOWN) ? 1 : -1;
if (mousekey_frame < 2) mouse_report.y = move_unit(1);
} else if ((code == KC_MS_LEFT) || (code == KC_MS_RIGHT)) {
mousekey_x_dir = (code == KC_MS_RIGHT) ? 1 : -1;
} else if ((code == QK_MOUSE_CURSOR_LEFT) || (code == QK_MOUSE_CURSOR_RIGHT)) {
mousekey_x_dir = (code == QK_MOUSE_CURSOR_RIGHT) ? 1 : -1;
if (mousekey_frame < 2) mouse_report.x = move_unit(0);
}

# else // no inertia

if (code == KC_MS_UP)
if (code == QK_MOUSE_CURSOR_UP)
mouse_report.y = move_unit() * -1;
else if (code == KC_MS_DOWN)
else if (code == QK_MOUSE_CURSOR_DOWN)
mouse_report.y = move_unit();
else if (code == KC_MS_LEFT)
else if (code == QK_MOUSE_CURSOR_LEFT)
mouse_report.x = move_unit() * -1;
else if (code == KC_MS_RIGHT)
else if (code == QK_MOUSE_CURSOR_RIGHT)
mouse_report.x = move_unit();

# endif // inertia or not

else if (code == KC_MS_WH_UP)
else if (code == QK_MOUSE_WHEEL_UP)
mouse_report.v = wheel_unit();
else if (code == KC_MS_WH_DOWN)
else if (code == QK_MOUSE_WHEEL_DOWN)
mouse_report.v = wheel_unit() * -1;
else if (code == KC_MS_WH_LEFT)
else if (code == QK_MOUSE_WHEEL_LEFT)
mouse_report.h = wheel_unit() * -1;
else if (code == KC_MS_WH_RIGHT)
else if (code == QK_MOUSE_WHEEL_RIGHT)
mouse_report.h = wheel_unit();
else if (IS_MOUSEKEY_BUTTON(code))
mouse_report.buttons |= 1 << (code - KC_MS_BTN1);
else if (code == KC_MS_ACCEL0)
mouse_report.buttons |= 1 << (code - QK_MOUSE_BUTTON_1);
else if (code == QK_MOUSE_ACCELERATION_0)
mousekey_accel |= (1 << 0);
else if (code == KC_MS_ACCEL1)
else if (code == QK_MOUSE_ACCELERATION_1)
mousekey_accel |= (1 << 1);
else if (code == KC_MS_ACCEL2)
else if (code == QK_MOUSE_ACCELERATION_2)
mousekey_accel |= (1 << 2);
}

void mousekey_off(uint8_t code) {
# ifdef MOUSEKEY_INERTIA

// key release clears impulse unless opposite direction is held
if ((code == KC_MS_UP) && (mousekey_y_dir < 1))
if ((code == QK_MOUSE_CURSOR_UP) && (mousekey_y_dir < 1))
mousekey_y_dir = 0;
else if ((code == KC_MS_DOWN) && (mousekey_y_dir > -1))
else if ((code == QK_MOUSE_CURSOR_DOWN) && (mousekey_y_dir > -1))
mousekey_y_dir = 0;
else if ((code == KC_MS_LEFT) && (mousekey_x_dir < 1))
else if ((code == QK_MOUSE_CURSOR_LEFT) && (mousekey_x_dir < 1))
mousekey_x_dir = 0;
else if ((code == KC_MS_RIGHT) && (mousekey_x_dir > -1))
else if ((code == QK_MOUSE_CURSOR_RIGHT) && (mousekey_x_dir > -1))
mousekey_x_dir = 0;

# else // no inertia

if (code == KC_MS_UP && mouse_report.y < 0)
if (code == QK_MOUSE_CURSOR_UP && mouse_report.y < 0)
mouse_report.y = 0;
else if (code == KC_MS_DOWN && mouse_report.y > 0)
else if (code == QK_MOUSE_CURSOR_DOWN && mouse_report.y > 0)
mouse_report.y = 0;
else if (code == KC_MS_LEFT && mouse_report.x < 0)
else if (code == QK_MOUSE_CURSOR_LEFT && mouse_report.x < 0)
mouse_report.x = 0;
else if (code == KC_MS_RIGHT && mouse_report.x > 0)
else if (code == QK_MOUSE_CURSOR_RIGHT && mouse_report.x > 0)
mouse_report.x = 0;

# endif // inertia or not

else if (code == KC_MS_WH_UP && mouse_report.v > 0)
else if (code == QK_MOUSE_WHEEL_UP && mouse_report.v > 0)
mouse_report.v = 0;
else if (code == KC_MS_WH_DOWN && mouse_report.v < 0)
else if (code == QK_MOUSE_WHEEL_DOWN && mouse_report.v < 0)
mouse_report.v = 0;
else if (code == KC_MS_WH_LEFT && mouse_report.h < 0)
else if (code == QK_MOUSE_WHEEL_LEFT && mouse_report.h < 0)
mouse_report.h = 0;
else if (code == KC_MS_WH_RIGHT && mouse_report.h > 0)
else if (code == QK_MOUSE_WHEEL_RIGHT && mouse_report.h > 0)
mouse_report.h = 0;
else if (IS_MOUSEKEY_BUTTON(code))
mouse_report.buttons &= ~(1 << (code - KC_MS_BTN1));
else if (code == KC_MS_ACCEL0)
mouse_report.buttons &= ~(1 << (code - QK_MOUSE_BUTTON_1));
else if (code == QK_MOUSE_ACCELERATION_0)
mousekey_accel &= ~(1 << 0);
else if (code == KC_MS_ACCEL1)
else if (code == QK_MOUSE_ACCELERATION_1)
mousekey_accel &= ~(1 << 1);
else if (code == KC_MS_ACCEL2)
else if (code == QK_MOUSE_ACCELERATION_2)
mousekey_accel &= ~(1 << 2);
if (mouse_report.x == 0 && mouse_report.y == 0) {
mousekey_repeat = 0;
Expand Down Expand Up @@ -568,29 +568,29 @@ void mousekey_on(uint8_t code) {
uint16_t const c_offset = c_offsets[mk_speed];
uint16_t const w_offset = w_offsets[mk_speed];
uint8_t const old_speed = mk_speed;
if (code == KC_MS_UP)
if (code == QK_MOUSE_CURSOR_UP)
mouse_report.y = c_offset * -1;
else if (code == KC_MS_DOWN)
else if (code == QK_MOUSE_CURSOR_DOWN)
mouse_report.y = c_offset;
else if (code == KC_MS_LEFT)
else if (code == QK_MOUSE_CURSOR_LEFT)
mouse_report.x = c_offset * -1;
else if (code == KC_MS_RIGHT)
else if (code == QK_MOUSE_CURSOR_RIGHT)
mouse_report.x = c_offset;
else if (code == KC_MS_WH_UP)
else if (code == QK_MOUSE_WHEEL_UP)
mouse_report.v = w_offset;
else if (code == KC_MS_WH_DOWN)
else if (code == QK_MOUSE_WHEEL_DOWN)
mouse_report.v = w_offset * -1;
else if (code == KC_MS_WH_LEFT)
else if (code == QK_MOUSE_WHEEL_LEFT)
mouse_report.h = w_offset * -1;
else if (code == KC_MS_WH_RIGHT)
else if (code == QK_MOUSE_WHEEL_RIGHT)
mouse_report.h = w_offset;
else if (IS_MOUSEKEY_BUTTON(code))
mouse_report.buttons |= 1 << (code - KC_MS_BTN1);
else if (code == KC_MS_ACCEL0)
mouse_report.buttons |= 1 << (code - QK_MOUSE_BUTTON_1);
else if (code == QK_MOUSE_ACCELERATION_0)
mk_speed = mkspd_0;
else if (code == KC_MS_ACCEL1)
else if (code == QK_MOUSE_ACCELERATION_1)
mk_speed = mkspd_1;
else if (code == KC_MS_ACCEL2)
else if (code == QK_MOUSE_ACCELERATION_2)
mk_speed = mkspd_2;
if (mk_speed != old_speed) adjust_speed();
}
Expand All @@ -599,30 +599,30 @@ void mousekey_off(uint8_t code) {
# ifdef MK_MOMENTARY_ACCEL
uint8_t const old_speed = mk_speed;
# endif
if (code == KC_MS_UP && mouse_report.y < 0)
if (code == QK_MOUSE_CURSOR_UP && mouse_report.y < 0)
mouse_report.y = 0;
else if (code == KC_MS_DOWN && mouse_report.y > 0)
else if (code == QK_MOUSE_CURSOR_DOWN && mouse_report.y > 0)
mouse_report.y = 0;
else if (code == KC_MS_LEFT && mouse_report.x < 0)
else if (code == QK_MOUSE_CURSOR_LEFT && mouse_report.x < 0)
mouse_report.x = 0;
else if (code == KC_MS_RIGHT && mouse_report.x > 0)
else if (code == QK_MOUSE_CURSOR_RIGHT && mouse_report.x > 0)
mouse_report.x = 0;
else if (code == KC_MS_WH_UP && mouse_report.v > 0)
else if (code == QK_MOUSE_WHEEL_UP && mouse_report.v > 0)
mouse_report.v = 0;
else if (code == KC_MS_WH_DOWN && mouse_report.v < 0)
else if (code == QK_MOUSE_WHEEL_DOWN && mouse_report.v < 0)
mouse_report.v = 0;
else if (code == KC_MS_WH_LEFT && mouse_report.h < 0)
else if (code == QK_MOUSE_WHEEL_LEFT && mouse_report.h < 0)
mouse_report.h = 0;
else if (code == KC_MS_WH_RIGHT && mouse_report.h > 0)
else if (code == QK_MOUSE_WHEEL_RIGHT && mouse_report.h > 0)
mouse_report.h = 0;
else if (IS_MOUSEKEY_BUTTON(code))
mouse_report.buttons &= ~(1 << (code - KC_MS_BTN1));
mouse_report.buttons &= ~(1 << (code - QK_MOUSE_BUTTON_1));
# ifdef MK_MOMENTARY_ACCEL
else if (code == KC_MS_ACCEL0)
else if (code == QK_MOUSE_ACCELERATION_0)
mk_speed = mkspd_DEFAULT;
else if (code == KC_MS_ACCEL1)
else if (code == QK_MOUSE_ACCELERATION_1)
mk_speed = mkspd_DEFAULT;
else if (code == KC_MS_ACCEL2)
else if (code == QK_MOUSE_ACCELERATION_2)
mk_speed = mkspd_DEFAULT;
if (mk_speed != old_speed) adjust_speed();
# endif
Expand Down
2 changes: 1 addition & 1 deletion quantum/pointing_device/pointing_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,7 @@ __attribute__((weak)) report_mouse_t pointing_device_task_combined_user(report_m

__attribute__((weak)) void pointing_device_keycode_handler(uint16_t keycode, bool pressed) {
if IS_MOUSEKEY_BUTTON (keycode) {
local_mouse_report.buttons = pointing_device_handle_buttons(local_mouse_report.buttons, pressed, keycode - KC_MS_BTN1);
local_mouse_report.buttons = pointing_device_handle_buttons(local_mouse_report.buttons, pressed, keycode - QK_MOUSE_BUTTON_1);
pointing_device_send();
}
}
2 changes: 1 addition & 1 deletion quantum/pointing_device/pointing_device_auto_mouse.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
# define AUTO_MOUSE_TIME 650
#endif
#ifndef AUTO_MOUSE_DELAY
# define AUTO_MOUSE_DELAY GET_TAPPING_TERM(KC_MS_BTN1, &(keyrecord_t){})
# define AUTO_MOUSE_DELAY GET_TAPPING_TERM(QK_MOUSE_BUTTON_1, &(keyrecord_t){})
#endif
#ifndef AUTO_MOUSE_DEBOUNCE
# define AUTO_MOUSE_DEBOUNCE 25
Expand Down
8 changes: 4 additions & 4 deletions quantum/repeat_key.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,10 +220,10 @@ uint16_t get_alt_repeat_key_keycode(void) {
{KC_BRIU, KC_BRID}, // Brightness Up / Down.
#endif // EXTRAKEY_ENABLE
#ifdef MOUSEKEY_ENABLE
{KC_MS_L, KC_MS_R}, // Mouse Cursor Left / Right.
{KC_MS_U, KC_MS_D}, // Mouse Cursor Up / Down.
{KC_WH_L, KC_WH_R}, // Mouse Wheel Left / Right.
{KC_WH_U, KC_WH_D}, // Mouse Wheel Up / Down.
{MS_LEFT, MS_RGHT}, // Mouse Cursor Left / Right.
{MS_UP, MS_DOWN}, // Mouse Cursor Up / Down.
{MS_WHLL, MS_WHLR}, // Mouse Wheel Left / Right.
{MS_WHLU, MS_WHLD}, // Mouse Wheel Up / Down.
#endif // MOUSEKEY_ENABLE
};
// clang-format on
Expand Down