git: cyapa - Add false 3-finger button and add emulation for all three buttons
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Jan 9 18:09:18 PST 2014
commit 42164ccbf31ac39c87bb9687f7c137f5e6816210
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Jan 9 18:01:29 2014 -0800
cyapa - Add false 3-finger button and add emulation for all three buttons
* 3-finger sequences can now be used to emulate all three buttons
rather than just the left button.
When you place three fingers down, the one you place last and/or
the one you tap determines the button. If the left finger is last
then the LEFT mouse button is emulation. Middle finger (of the
three) emulates the MIDDLE mouse button, and the right finger
emulates the right mouse button. Only one button can be emulated
at a time.
* Add detection for false 3-finger buttons. When you place all three
fingers down at the same time within 1/25 of a second this is detected
and will emulate NO fingers. You can then simply tap the finger you
want after moving the mouse pointer to where you want.
(In addition to the normal one-finger or two-finger mousing, this also
allows you to mouse with three fingers).
* WARNING! These trackpads have a limitation when three or more
fingers are down. This makes emulating a 4-finger or 5-finger
'claw' (for button-4 or button-5) very difficult so we currently
do not support that.
If three or more fingers are placed on the pad in a horizontal line
(all Y coordinates are the same), the pad will get confused after
a few seconds. It will recalibrate and de-confuse itself if you
life your hand off the pad for a few seconds.
The solution is when using 3-finger sequences to place your fingers
on a SLIGHT diagonal so their Y coordinates are slightly different.
This will yield much more reliable operation of the trackpadd's
finger detection function.
Summary of changes:
sys/dev/smbus/cyapa/cyapa.c | 85 ++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 77 insertions(+), 8 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/42164ccbf31ac39c87bb9687f7c137f5e6816210
--
DragonFly BSD source repository
More information about the Commits
mailing list