]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Re-fix Mousekey Movements (#5740)
authorDrashna Jaelre <drashna@live.com>
Mon, 6 May 2019 15:35:01 +0000 (08:35 -0700)
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>
Mon, 6 May 2019 15:35:01 +0000 (08:35 -0700)
* Re-fix Mousekey Movements

After the new movement model was instroduced, it broke diagonal momement, again.  Reapplying fix from #3147 to both old and new acceleration method.

* Make diagonal mouse report checks more readable

Co-Authored-By: drashna <drashna@live.com>
tmk_core/common/mousekey.c

index 8c9184306344138dd7c8f15bd4b3c4a925bc0e05..bb08576b9faf96d0ca071f68adc28c781226896d 100644 (file)
@@ -114,7 +114,9 @@ void mousekey_task(void) {
   /* diagonal move [1/sqrt(2)] */
   if (mouse_report.x && mouse_report.y) {
     mouse_report.x = times_inv_sqrt2(mouse_report.x);
+    if (mouse_report.x == 0) { mouse_report.x = 1; }
     mouse_report.y = times_inv_sqrt2(mouse_report.y);
+    if (mouse_report.y == 0) { mouse_report.y = 1; }
   }
   if (mouse_report.v > 0) mouse_report.v = wheel_unit();
   if (mouse_report.v < 0) mouse_report.v = wheel_unit() * -1;
@@ -232,7 +234,9 @@ void adjust_speed(void) {
   // adjust for diagonals
   if (mouse_report.x && mouse_report.y) {
   mouse_report.x = times_inv_sqrt2(mouse_report.x);
+  if (mouse_report.x == 0) { mouse_report.x = 1; }
   mouse_report.y = times_inv_sqrt2(mouse_report.y);
+  if (mouse_report.y == 0) { mouse_report.y = 1; }
   }
   if (mouse_report.h && mouse_report.v) {
   mouse_report.h = times_inv_sqrt2(mouse_report.h);