فهرست منبع

[Bug] Fix issue with mousekey movement getting stuck (#17493)

* [Bug] Fix issue with mousekey movement getting stuck

* Lint
Drashna Jaelre 2 سال پیش
والد
کامیت
43f8d365ba
1فایلهای تغییر یافته به همراه6 افزوده شده و 2 حذف شده
  1. 6 2
      quantum/mousekey.c

+ 6 - 2
quantum/mousekey.c

@@ -70,6 +70,10 @@ uint8_t mk_wheel_interval    = MOUSEKEY_WHEEL_INTERVAL;
 uint8_t mk_wheel_max_speed   = MOUSEKEY_WHEEL_MAX_SPEED;
 uint8_t mk_wheel_time_to_max = MOUSEKEY_WHEEL_TIME_TO_MAX;
 
+bool should_mousekey_report_send(report_mouse_t *mouse_report) {
+    return mouse_report->x || mouse_report->y || mouse_report->v || mouse_report->h;
+}
+
 #    ifndef MK_COMBINED
 
 static uint8_t move_unit(void) {
@@ -252,7 +256,7 @@ void mousekey_task(void) {
         }
     }
 
-    if (has_mouse_report_changed(&mouse_report, &tmpmr)) {
+    if (has_mouse_report_changed(&mouse_report, &tmpmr) || should_mousekey_report_send(&mouse_report)) {
         mousekey_send();
     }
     memcpy(&mouse_report, &tmpmr, sizeof(tmpmr));
@@ -358,7 +362,7 @@ void mousekey_task(void) {
         mouse_report.h = tmpmr.h;
     }
 
-    if (has_mouse_report_changed(&mouse_report, &tmpmr)) {
+    if (has_mouse_report_changed(&mouse_report, &tmpmr) || should_mousekey_report_send(&mouse_report)) {
         mousekey_send();
     }
     memcpy(&mouse_report, &tmpmr, sizeof(tmpmr));