Hi Chris,

I am reading through your code (in the "1 Finger Gesture Behavior" email
thread) and your description below.  I need to do some experiment before I
can make real comments.

Your 200ms delay/debounce is a very good suggestion.  I am testing it with
100ms on the TPC and the Bamboo touch to see how it works.

Let me know if you have more suggestions

Ping

On Wed, Mar 3, 2010 at 7:33 PM, Chris Bagwell <ch...@cnpbagwell.com> wrote:

> Hi all,
>
> This is updated description of 1 and 2 finger gestures for both
> touchscreens and touchpads that I emailed out a while ago.  Its to
> serve multiple purposes.  1) get agreement on gestures to support and
> how they should work. 2) proposal of permanent gesture names to
> document in man pages. 3) It happens to be pseudo-code-ish for the
> gesture patch I emailed out before this one to aid understanding it.
>
> Chris
>
> 1) Single Finger Touch (left click):
>
> Defined as user touching screen/pad with single finger and leaving
> more then 200ms.
>
> In Relative mode (touchpad), moves cursor using normal relative
> behaviour (i.e. it doesn't support this mode).  No button press
> occurs.
>
> In Absolute mode (touchscreen), if finger stays down for longer then
> 200ms then a left button press occurs.  The 200ms is a debounce to
> allow time to detect a two finger gesture on touch screens.
>
> TODO: The 200ms is a place holder I'm using. It feels to long in my tests.
>
> 2) Single Finger Tap (left click):
>
> Defined as user touching screen/pad with single finger for at least
> 200ms (to debounce 2 finger gestures) and removing again within 500ms.
>
> In Absolute mode, the button press is initiated at 200ms boundary and
> button release occurs when finger is removed.
>
> In Relative mode, the button press and button release both occur when
> finger is removed.  TODO: Synaptics driver supports a user
> configurable delay value between press and release for this case to
> allow visual feedback to occur on buttons.  Maybe we should support
> this as well.
>
> TODO: 500ms is also a place holder and is user provisionable but must
> be greater then 200ms debounce timer.
>
> 3) Single Finger Double Tap (left double click):
>
> Nothing special here.  We use Single Finger Tap logic and you'll get
> double clicks as long as user taps fast.
>
> TODO: When we support Tap-and-Lock gesture then we may need to do
> something here.
>
> 4) Two Finger Touch (right click)
>
> Defined as user touching screen/pad with two fingers and keeping them
> there for at least 200ms.  We wait full 200ms to help not send button
> presses for 2 finger motion based gestures cases (an additional
> debounce).
>
> In Relative mode, acts same as Single Finger Touch mode (it doesn't
> support this mode).
>
> In Absolute mode, at 200ms timer expire we see if user is moving
> fingers to much.  If so send no button press and move to motion based
> gesture logic.  If no motion detected then send right button press.
>
> 5) Two Finger Tap (right click)
>
> Defined as user touching screen/pad with two fingers and removing
> again within 500ms.  We decide 1 vs. 2 Finger Tap at end of 200ms
> timer expire.
>
> In Absolute mode, the right button press is initiated at 200ms
> boundary and button release occurs when finger is removed.
>
> In Relative mode, the right button press and button release both occur
> when finger is removed.
>
> After 500ms window, we stay in motion based gesture logic until user
> removes fingers.  TODO: Absolute mode can do this at 200ms window.
>
> 6) Two Finger Double Tap (double right click)
>
> Same logic as Single Finger Double Tap but with right button.
>
> 7) Two Finger Pinch Zoom
>
> Zoom in is defined as placing 2 fingers on screen/pad far apart and
> bringing together before lifting.  Zoom out is defined as placing
> fingers on screen/pad close together and moving apart before lifting.
>
> Detected by seeing 2 fingers down and moving (non-parallel motion)
> more then fixed length in first 200ms.  If length is increasing, then
> zooming out and will send Ctrl-Up.  If length is decreasing, then
> zooming in and will send Ctrl-Down.  Need to support user changing
> directions without lifting fingers.
>
> TODO: Its best to support entering Zoom mode even if not moving
> fingers at 200ms timer expire because initial pause is pretty normal
> user behaviour.  But that means on touchscreens we need to release
> button press when we enter mode.
>
> 8) Two Finger Scroll
>
> Horizontal Scroll is defined as placing 2 fingers (parallel to each
> other) on screen/pad and moving together horizontally.  Vertical
> scroll is defined as placing 2 fingers on screen/pad and moving
> together vertically.
>
> Detected by seeing 2 fingers down and moving within a line of fixed
> width together within first 200ms.  Sends scroll events as seen.
>
> TODO: Its best to support entering Scroll mode even if not moving
> fingers at 200ms timer expire because initial pause is pretty normal
> user behaviour.  But that means on touchscreens we need to release
> button press when we enter mode.
>
> Chris
>
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to