aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/common/mousekey.c
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2019-05-06 08:35:01 -0700
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-05-06 08:35:01 -0700
commit8a9c90ad78305a1d76663fcb973a1a2ae7177297 (patch)
tree4f33b815fc93dd38a9eda185882d140d726ed0ec /tmk_core/common/mousekey.c
parentfbc40032e73ee80db961c3930a2b5d84ffd51a6f (diff)
downloadqmk_firmware-8a9c90ad78305a1d76663fcb973a1a2ae7177297.tar.gz
qmk_firmware-8a9c90ad78305a1d76663fcb973a1a2ae7177297.zip
Re-fix Mousekey Movements (#5740)
* 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>
Diffstat (limited to 'tmk_core/common/mousekey.c')
-rw-r--r--tmk_core/common/mousekey.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/tmk_core/common/mousekey.c b/tmk_core/common/mousekey.c
index 8c9184306..bb08576b9 100644
--- a/tmk_core/common/mousekey.c
+++ b/tmk_core/common/mousekey.c
@@ -114,7 +114,9 @@ void mousekey_task(void) {
114 /* diagonal move [1/sqrt(2)] */ 114 /* diagonal move [1/sqrt(2)] */
115 if (mouse_report.x && mouse_report.y) { 115 if (mouse_report.x && mouse_report.y) {
116 mouse_report.x = times_inv_sqrt2(mouse_report.x); 116 mouse_report.x = times_inv_sqrt2(mouse_report.x);
117 if (mouse_report.x == 0) { mouse_report.x = 1; }
117 mouse_report.y = times_inv_sqrt2(mouse_report.y); 118 mouse_report.y = times_inv_sqrt2(mouse_report.y);
119 if (mouse_report.y == 0) { mouse_report.y = 1; }
118 } 120 }
119 if (mouse_report.v > 0) mouse_report.v = wheel_unit(); 121 if (mouse_report.v > 0) mouse_report.v = wheel_unit();
120 if (mouse_report.v < 0) mouse_report.v = wheel_unit() * -1; 122 if (mouse_report.v < 0) mouse_report.v = wheel_unit() * -1;
@@ -232,7 +234,9 @@ void adjust_speed(void) {
232 // adjust for diagonals 234 // adjust for diagonals
233 if (mouse_report.x && mouse_report.y) { 235 if (mouse_report.x && mouse_report.y) {
234 mouse_report.x = times_inv_sqrt2(mouse_report.x); 236 mouse_report.x = times_inv_sqrt2(mouse_report.x);
237 if (mouse_report.x == 0) { mouse_report.x = 1; }
235 mouse_report.y = times_inv_sqrt2(mouse_report.y); 238 mouse_report.y = times_inv_sqrt2(mouse_report.y);
239 if (mouse_report.y == 0) { mouse_report.y = 1; }
236 } 240 }
237 if (mouse_report.h && mouse_report.v) { 241 if (mouse_report.h && mouse_report.v) {
238 mouse_report.h = times_inv_sqrt2(mouse_report.h); 242 mouse_report.h = times_inv_sqrt2(mouse_report.h);