cyapa - Add false 3-finger button and add emulation for all three buttons
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 10 Jan 2014 02:01:29 +0000 (18:01 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 10 Jan 2014 02:08:44 +0000 (18:08 -0800)
commit42164ccbf31ac39c87bb9687f7c137f5e6816210
treedb9e9501b59eefcc09ce4d8bfdce1d463bb27b09
parent138860753bb03c3734ea42a32a7abd9c13060d65
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.
sys/dev/smbus/cyapa/cyapa.c