Hey everyone.
  I have been hacking away at appletouch.c for a little while now and have had 
minor success on various fronts.  The reason I am looking at appletouch, not 
synaptics, is because ideally we want the driver to not 'average' the mouse 
position when > 2 fingers are being used.  Synaptics only gets the scroll x,y 
position and finger count.  It would be tough to "unaverage" out the x,y params 
in the higher level driver.

  So far I have had success in disabling scrolling altogether, to allow
for a fully stable right click.  This means that as soon as I put > 1
finger on the track pad, the cursor will not move, allowing a right
click functionality.  However, the way I implemented it does not allow
for any kind of cursor movement, at all, with more than 1 finger on the
pad.  The side-scrolling feature still works, and in fact this
configuration is pretty nice.  However, ideally we want 2-finger
scrolling.

  My second pseudo-success has come in that I can get 2-finger scrolling
to work without jumpiness, but only if the first finger to touch the pad
is on "top" of the bottom finger (closer to the keyboard).  If the first
finger is furthest from the keyboard, however, jumpy behaviour comes
back.

  I have a few ideas I'm going to try out today.  I'll post back here
with success.  I see, at a minimum, a patch for people who do not want
2-finger scrolling but DO want 2-finger right clicking.

Blaine

PATCH for stable right click, disables 2-finger scrolling.  Edit 
/etc/hal/fdi/policy/appletouch.fdi and turn on vertical edge scrolling.
/drivers/input/mouse/appletouch.c

620,623c620,629
<                       x = (dev->x_old * 3 + x) >> 2;
<                       y = (dev->y_old * 3 + y) >> 2;
<                       dev->x_old = x;
<                       dev->y_old = y;
---
>                       // *** Fixes the right-click instability problem, but 
> disables 2-finger scrolling ***
>                       if ((max(x_f, y_f)) == 2) {
>                               x = dev->x_old;
>                               y = dev->y_old;
>                       } else {
>                               x = (dev->x_old * 3 + x) >> 2;
>                               y = (dev->y_old * 3 + y) >> 2;
>                               dev->x_old = x;
>                               dev->y_old = y;
>                       }

-- 
Appletouch touchpad driver produces jumpy two-fingered scrolling
https://bugs.launchpad.net/bugs/381884
You received this bug notification because you are a member of Ubuntu-X,
which is subscribed to xserver-xorg-input-synaptics in ubuntu.

_______________________________________________
Mailing list: https://launchpad.net/~ubuntu-x-swat
Post to     : ubuntu-x-swat@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ubuntu-x-swat
More help   : https://help.launchpad.net/ListHelp

Reply via email to