git: cyapa - Add false 3-finger button and add emulation for all three buttons

Matthew Dillon dillon at
Thu Jan 9 18:09:18 PST 2014

commit 42164ccbf31ac39c87bb9687f7c137f5e6816210
Author: Matthew Dillon <dillon at>
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(-)

DragonFly BSD source repository

More information about the Commits mailing list