diff options
| author | Drashna Jaelre <drashna@live.com> | 2019-05-06 08:35:01 -0700 |
|---|---|---|
| committer | MechMerlin <30334081+mechmerlin@users.noreply.github.com> | 2019-05-06 08:35:01 -0700 |
| commit | 8a9c90ad78305a1d76663fcb973a1a2ae7177297 (patch) | |
| tree | 4f33b815fc93dd38a9eda185882d140d726ed0ec /tmk_core/common/mousekey.c | |
| parent | fbc40032e73ee80db961c3930a2b5d84ffd51a6f (diff) | |
| download | qmk_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.c | 4 |
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); |
