[gpm] flaky movement and buttons when using both stick and touchpad (ultranav)

Peter Berg Larsen pebl@math.ku.dk
Wed Nov 26 18:20:13 CET 2003

On Wed, 26 Nov 2003, Tavin Cole wrote:

> On Sun, 2003-11-23 at 06:17, Peter Berg Larsen wrote:
> > > > Could you sent the info/debug messages? with name, model, firmware
> > > > version.
> > >
> > > no problem, see attached file.  in this run of gpm i tapped the touchpad
> > > and caused the pointer to drift off towards the upper-right.  i then
> > > pressed the left touchpad button, the left stick button, and then pushed
> > > towards the bottom-left with the stick.

*** debug [synaptics.c(1780)]: A tap? 0 < 14 < 16 && (18)^2 + (-17)^2 < 10000
*** info [synaptics.c(1945)]: dx: -18.0  dy: -17.0  tdist^2: 613.0
*** info [synaptics.c(1964)]: tossx: -3  tossy: -3

You push the pad for a tap. (first line; both conditions are true). The
finger motion on the pad, while doing the tap, is large/moved enough for
it to also be consideret a toss. A toss stops when you touch the pad
again; so you are tossing while pressing the stick and pushing the
buttons. To stop this behaviour:

A) Disable toss, dooh. See the question below.
B) Set a higher constant for min_toss_dist or min_toss_time.
C) Apply following patch, which prevent a tap and a toss to be activated
   at the same time.

diff -uR gpm-1.20.1 gpm_my
--- gpm-1.20.1/src/synaptics.c
+++ gpm_my/src/synaptics.c
@@ -1933,6 +1933,7 @@
     /* No finger on the pad */
     /* Start the tossing action if enabled */
     if (tossing_enabled && was_fingers == 1 &&
+       !time_to_forget_tap &&
 	!was_tossing    &&
 	!is_scrolling   &&
 	(packet_num > min_toss_packets) &&

> btw, gpm doesn't compile when you define DEBUG in synaptics.c unless you
> also comment out L1156:

It didnt matter.

> > > i tried adding [tossing_enabled] FALSE.  with that, taps don't work at
> > > all (i only had them set up to left click or left click + drag) and
> > > neither do the touchpad buttons.  the random motion problems are gone,
> > > but i suppose that's because taps do nothing now.

So why does disabling tossing stop taps/buttons? (It should not influence
it at all). Could you send some output where you press a button and  do a

> > set them up to left click + drag ?? Could you elaborate on this.

> i just meant the usual behavior: a single tap is equivalent to a left
> click, a double tap where you hold the finger down on the second tap is
> equivalent to holding the left button down so you can drag things.

Ok. I understand now: You have not coded a new "left-click-drag" action,
but uses the "left-click" action. (I read it as drag-lock)


More information about the gpm mailing list