Module Name:    src
Committed By:   blymn
Date:           Tue Nov  6 08:55:02 UTC 2018

Modified Files:
        src/sys/dev/pckbport: synaptics.c

Log Message:
Fix clamping of deltas so it works for both positive and negative deltas.


To generate a diff of this commit:
cvs rdiff -u -r1.42 -r1.43 src/sys/dev/pckbport/synaptics.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/pckbport/synaptics.c
diff -u src/sys/dev/pckbport/synaptics.c:1.42 src/sys/dev/pckbport/synaptics.c:1.43
--- src/sys/dev/pckbport/synaptics.c:1.42	Sat Jul 14 00:47:33 2018
+++ src/sys/dev/pckbport/synaptics.c	Tue Nov  6 08:55:02 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: synaptics.c,v 1.42 2018/07/14 00:47:33 maya Exp $	*/
+/*	$NetBSD: synaptics.c,v 1.43 2018/11/06 08:55:02 blymn Exp $	*/
 
 /*
  * Copyright (c) 2005, Steve C. Woodford
@@ -48,7 +48,7 @@
 #include "opt_pms.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: synaptics.c,v 1.42 2018/07/14 00:47:33 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: synaptics.c,v 1.43 2018/11/06 08:55:02 blymn Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1485,10 +1485,10 @@ synaptics_movement(struct synaptics_soft
 	/*
 	 * Clamp deltas to specified maximums.
 	 */
-	if (dx > synaptics_max_speed_x)
-		dx = synaptics_max_speed_x;
-	if (dy > synaptics_max_speed_y)
-		dy = synaptics_max_speed_y;
+	if (abs(dx) > synaptics_max_speed_x)
+		dx = ((dx >= 0)? 1 : -1) * synaptics_max_speed_x;
+	if (abs(dy) > synaptics_max_speed_y)
+		dy = ((dy >= 0)? 1 : -1) * synaptics_max_speed_y;
 
 	*dxp = dx;
 	*dyp = dy;

Reply via email to