Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/pckbport synaptics: Revert changes that broke gestur...



details:   https://anonhg.NetBSD.org/src/rev/86cd64488cb5
branches:  trunk
changeset: 1008579:86cd64488cb5
user:      nia <nia%NetBSD.org@localhost>
date:      Fri Mar 27 11:10:07 2020 +0000

description:
synaptics: Revert changes that broke gestures in cases where they worked.

It seems I have to figure out another way to make scrolling work for me.

diffstat:

 sys/dev/pckbport/synaptics.c |  24 +++++++++++-------------
 1 files changed, 11 insertions(+), 13 deletions(-)

diffs (61 lines):

diff -r ccd8f1d4f744 -r 86cd64488cb5 sys/dev/pckbport/synaptics.c
--- a/sys/dev/pckbport/synaptics.c      Fri Mar 27 09:47:03 2020 +0000
+++ b/sys/dev/pckbport/synaptics.c      Fri Mar 27 11:10:07 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: synaptics.c,v 1.62 2020/03/16 11:13:19 nia Exp $       */
+/*     $NetBSD: synaptics.c,v 1.63 2020/03/27 11:10:07 nia 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.62 2020/03/16 11:13:19 nia Exp $");
+__KERNEL_RCSID(0, "$NetBSD: synaptics.c,v 1.63 2020/03/27 11:10:07 nia Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -115,10 +115,10 @@
 static int synaptics_two_fingers_emul = 0;
 static int synaptics_scale_x = 16;
 static int synaptics_scale_y = 16;
-static int synaptics_scale_z = 64;
+static int synaptics_scale_z = 32;
 static int synaptics_max_speed_x = 32;
 static int synaptics_max_speed_y = 32;
-static int synaptics_max_speed_z = 1;
+static int synaptics_max_speed_z = 2;
 static int synaptics_movement_threshold = 4;
 static int synaptics_fscroll_min = 13;
 static int synaptics_fscroll_max = 14;
@@ -1285,7 +1285,13 @@
                return (0);
        }
 
-       if (sc->flags & SYN_FLAG_HAS_MULTI_FINGER) {
+       /*
+        * Detect 2 and 3 fingers if supported, but only if multiple
+        * fingers appear within the tap gesture time period.
+        */
+       if (sc->flags & SYN_FLAG_HAS_MULTI_FINGER &&
+           SYN_TIME(sc, sc->gesture_start_packet,
+           sp->sp_finger) < synaptics_gesture_length) {
                switch (sp->sp_w) {
                case SYNAPTICS_WIDTH_TWO_FINGERS:
                        fingers = 2;
@@ -1732,14 +1738,6 @@
 
                        synaptics_movement(sc, sp, sp->sp_finger,
                                z_emul, &dx, &dy, &dz);
-               } else if (fingers > 1) {
-                       /*
-                        * Multiple finger movement. Interpret it as scrolling.
-                        */
-                       synaptics_movement(sc, sp, sp->sp_finger, 1,
-                               &dx, &dy, &dz);
-                       sc->rem_x[0] = sc->rem_y[0] = 0;
-                       dx = dy = 0;
                } else {
                        /*
                         * No valid finger. Therefore no movement.



Home | Main Index | Thread Index | Old Index