소스 검색

Fix joystick button off-by-one error (#16037)

Ryan 3 년 전
부모
커밋
3e0ee6fb74
1개의 변경된 파일3개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 2
      quantum/process_keycode/process_joystick.c

+ 3 - 2
quantum/process_keycode/process_joystick.c

@@ -28,10 +28,11 @@ bool process_joystick_buttons(uint16_t keycode, keyrecord_t *record) {
     if (keycode < JS_BUTTON0 || keycode > JS_BUTTON_MAX) {
         return true;
     } else {
+        uint8_t button_idx = (keycode - JS_BUTTON0);
         if (record->event.pressed) {
-            joystick_status.buttons[(keycode - JS_BUTTON0) / 8] |= 1 << (keycode % 8);
+            joystick_status.buttons[button_idx / 8] |= 1 << (button_idx % 8);
         } else {
-            joystick_status.buttons[(keycode - JS_BUTTON0) / 8] &= ~(1 << (keycode % 8));
+            joystick_status.buttons[button_idx / 8] &= ~(1 << (button_idx % 8));
         }
 
         joystick_status.status |= JS_UPDATED;