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 Mactel
Support, which is a direct subscriber.

Status in The Linux Kernel: New
Status in Mactel Support: New
Status in “xserver-xorg-input-synaptics” package in Ubuntu: Confirmed

Bug description:
Binary package hint: xserver-xorg-input-synaptics

My system is: Linux richard-laptop 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 
01:58:03 UTC 2009 x86_64 GNU/Linux.  However, this issue applies to at least 
Intrepid and Jaunty, 32 and 64 bit, running on Apple Mac hardware that uses an 
Appletouch touchpad.  It has also been reported in the Gentoo and Debian forums.

>From what I can find on the Net, the Appletouch touchpad was first used in 
>February 2005 for the G4 aluminium PowerBook, and last used for the Macbook 
>Pro in its 3rd generation, then 4th generation Intel Macbook in early 2008.

The issue is with two-fingered scrolling.  The Appletouch features the ability 
to detect two (or three) touches.  OS X uses this feature to enable scrolling, 
similar to a scrollwheel on a mouse.

The synaptics driver causes the simulated scrollwheel to start moving as soon 
as one places a second finger on the touchpad.  That is to say, placing a 
second finger causes the trackpad driver to deliver scrolling signals, which 
means that attempts at vertical scrolling feels jumpy, or over sensitive.

There was an update to the OS X driver that fixed this situation for Apple.  I 
guess that it detects the second finger and programmatically ignores the first 
few scrollticks, thereby 'deadening' the output.  This is what we need.

The synaptics driver allows for some modification, but not for multitouch 
input.  This needs to be fixed at source code level.

Richard

_______________________________________________
Mailing list: https://launchpad.net/~mactel-support
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~mactel-support
More help   : https://help.launchpad.net/ListHelp

Reply via email to