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>
This commit is contained in:
		
							parent
							
								
									fbc40032e7
								
							
						
					
					
						commit
						8a9c90ad78
					
				
					 1 changed files with 4 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue