Browse Source

fix: mousekey doesn't work with trackpoint (#18474)

Co-authored-by: Nick Brassel <nick@tzarc.org>
Klesh Wong 2 years ago
parent
commit
133fe1c013
1 changed files with 3 additions and 4 deletions
  1. 3 4
      drivers/ps2/ps2_mouse.c

+ 3 - 4
drivers/ps2/ps2_mouse.c

@@ -80,7 +80,7 @@ void ps2_mouse_task(void) {
     uint8_t rcv;
     rcv = ps2_host_send(PS2_MOUSE_READ_DATA);
     if (rcv == PS2_ACK) {
-        mouse_report.buttons = ps2_host_recv_response() | tp_buttons;
+        mouse_report.buttons = ps2_host_recv_response();
         mouse_report.x       = ps2_host_recv_response() * PS2_MOUSE_X_MULTIPLIER;
         mouse_report.y       = ps2_host_recv_response() * PS2_MOUSE_Y_MULTIPLIER;
 #    ifdef PS2_MOUSE_ENABLE_SCROLLING
@@ -88,11 +88,10 @@ void ps2_mouse_task(void) {
 #    endif
     } else {
         if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n");
-        return;
     }
 #else
     if (pbuf_has_data()) {
-        mouse_report.buttons = ps2_host_recv_response() | tp_buttons;
+        mouse_report.buttons = ps2_host_recv_response();
         mouse_report.x       = ps2_host_recv_response() * PS2_MOUSE_X_MULTIPLIER;
         mouse_report.y       = ps2_host_recv_response() * PS2_MOUSE_Y_MULTIPLIER;
 #    ifdef PS2_MOUSE_ENABLE_SCROLLING
@@ -100,10 +99,10 @@ void ps2_mouse_task(void) {
 #    endif
     } else {
         if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n");
-        return;
     }
 #endif
 
+    mouse_report.buttons |= tp_buttons;
     /* if mouse moves or buttons state changes */
     if (mouse_report.x || mouse_report.y || mouse_report.v || ((mouse_report.buttons ^ buttons_prev) & PS2_MOUSE_BTN_MASK)) {
 #ifdef PS2_MOUSE_DEBUG_RAW