Hi all,
I see that there is no menion of Gesture support in the wacm
xdrv/xf86-input-wacom man pages. I wanted to document what behavior is
supported for end users sake and also have some agreed upon behavior so that
I can refer to when fixing issues with current gesture code. Man pages will
be much more brief then below.
Can you guys comment on logic errors or changes to behavior you'd like to
make? BTW, the below behavior is not totally like todays code or the
existing Bamboo patches in many cases.
Because of the strong interaction of 1 and 2 finger Touch and Tap features,
I'm thinking about combining these into single chunk of code or state
machine instead of today's attempt to process them in seperate
steps/functions
1) Single Finger Touch (left click):
Defined as user touching screen/pad with single finger and leaving more then
short period. Exact time length "short" is TBD.
In Relative mode, moves cursor using normal relative behavior.
In Absolute mode, 2 behaviors. In both cases, the cursor moves around to
match user movement using standard absolute behavior. 1) If upon touching
screen, the user hovers 200ms (fixed right now) then a left button press
occurs and stays pressed until user lifts finger. Hover, in this case,
means roughly that they stay within a small area (fixed to no moves more
then 10). 2) If user moves more then fixed small area in first 200ms then no
button press occurs; just cursor movement.
Issue: Since Relative mode doesn't send a left button down, there is no way
to click-and-drag. Windows driver uses Single Finger Touch + Second Finger
to the Left for click and drag. I've not defined that concept so far.
2) Single Finger Tap (left click):
Defined as user touching screen/pad with single finger and removing again
within a small time window.
In both Absolute and Relative mode, results in left button presses if user
lifts finger before fixed small time. In absolute mode, if user leaves
finger down for 200ms before lifting, the logic switches over to Single
Finger Touch which still results in desired button presses. For Relative or
Absolute before 200ms, lifting finger during small time window results in
left button down followed by left button up.
3) Single Finger Double Tap (left double click):
Nothing special here. We use Single Figner Tap logic and you'll get double
clicks as long as user taps fast.
4) Two Finger Touch (right click)
Defined as user touching screen/pad with two fingers and keeping them there
for longer then small time window.
In Relative mode, acts like Single Finger Touch mode.
In Absolute mode, 3 behaviors. In all cases, no mouse movement occurs. 1)
If user puts second finger down more then 200ms+Hover after first finger
then a left button up, right button down, and right button up is sent. 2)
If second finger is detected while still in first fingers 200ms window then
if the user hovers for 200ms then only right button down followed by right
button up is sent. In this case, 200ms window stays relative to first
finger start time. 3) If user moves more then fixed small area at 200ms
window end then no button press occurs. #3 allows Zoom/Scroll to kick in.
5) Two Finger Tap (right click)
Defined as user touching screen/pad with two fingers and removing again
within a small time window. Small time window has same meaning as Single
Finger Tap.
In both Absolute and Relative mode, results in a right button press if user
lifts fingers before fixed small time. In Absolute mode, if user leaves
finger down for 200ms before lifting, the logic switches over to Two Finger
Touch which still results in desired button presses. In Relative or
Absolute before 200ms mode, if user lifts finger bthen a right button down
followed by right button up is sent.
6) Two Finger Double Tap (double right click)
Same logic as Single Finger Tap.
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 more then fix length in first
200ms. If length is increasing, then zooming out and will send Ctrl-Up. If
length is descreasing, then zooming in and will send Ctrl-Down. 200ms needs
to be based on first finger down to prevent it sending left button down in
Absolute mode.
8) Two Finger Scroll
Horizontal Scroll is defined as placing 2 figners on screen/pad and moving
together horizontally. Veritical 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. 200ms needs to
be based on first finger down to prevent it sending left button down in
Absolute mode.
Chris
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Linuxwacom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel