| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
In preparation of adding several additional finger bit registers,
remove the redundant bit-counting variables and introduce fast
bit-traversal functions instead.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
|
| |
The current implementation will emit additional multi-finger click
events if, for instance, one finger is removed before releasing the
button. This patch makes sure logical buttons events are only emitted
as a result of a real button event.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
| |
In the current implementation this patch has no effect, but with
any change to the logic, it will. Add the lines missing in order
to loop over pointing fingers.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
|
|
| |
This patch simplifies and unifies the means by which finger
configuration changes are detected. The logic is almost the same,
except for the unlikely case of very quickly switching the clicking
finger, after first having moved it above the clicking area. This case
should now properly be detected as a pointing finger.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
|
| |
This bug crept in during the transition of the movement code from
position differencing to delta accumulation. If briefly touching the
trackpad in motion, then placing the finger calmly at another point, a
jittery motion would occur. Fixed with this patch.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
| |
Output parsing memory values, switched off by default.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current code determines the moving, scrolling and swiping gestures
based on the number of fingers on the trackpad, including the resting
fingers at the bottom of the pad. With information about all fingers
at hand, it is possible to determine which fingers on the trackpad are
participating in a moving gesture. This patch computes the movement
based on the pointing fingers only, and uses that number to determine
the type of moving gesture.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Multi-finger clicks and taps are goverened by the number of pointing
fingers on the trackpad. This number can be different from the actual
number of fingers on the trackpad. For instance, a finger resting at
the bottom of an integrated button, or a finger that accidentally
touches the pad during a press, are not pointing fingers. This patch
introduces extract_pointers(), which computes the number of pointing
fingers on the trackpad, and uses that number to determine the logical
button state.
[rydberg@euromail.se: various cleanups]
Signed-off-by: Arturo Castro <arturo@openframeworks.cc>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
| |
Define three-finger vertical and horizontal scroll as vertical and
horizontal swipe gestures.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch, finger motion is divided into two phases; one attack
phase where fingers are added to the trackpad, and one decay phase, where
fingers leave the trackpad. The decay delay is set considerably larger
than the attack delay. The prime effect is to ignore accidental pointer
movement right after a two-finger scroll.
Signed-off-by: Arturo Castro <arturo@openframeworks.cc>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
|
|
| |
The current code responds to finger movement immediately after
a finger has been placed on the trackpad, even if the touch is
accidental. This patch delays the effect of the finger by 70 ms,
resulting in fewer accidental movements.
Signed-off-by: Arturo Castro <arturo@openframeworks.cc>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
|
| |
The button extraction currently modifies the MTState buttons,
upsetting the semantics in a bad way. This patch adds the logical
button state to the Memory structure, and uses it to compute the
logical button change.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
|
| |
The current code would extract movement from a rapid change
from one finger to the next, resulting in unwanted jumps. This
patch first checks that the finger configuration is the same
before attempting to extract movement.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
| |
Break out extraction of movement, buttons and type. Only code
traversal, no logical changes.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The HWState keeps, for good reason, both touching fingers and fingers
going away. However, this implies that additional logic is needed to
keep track of the number of actual touching fingers. In particular
the test for touching fingers is somewhat misplaced in hwstate.c.
Moreover, HWState should only exist in one instance, since it contains
data which does not need to be referred to during gesture extraction.
This patch introduces the MTState structure, which keeps more digested
data for gesture extraction. In particular, it only keeps the actual
touches.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
|
|
|
|
|
| |
Rename the hardware state struct State to HWState, to make
room for additional state structures.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
| |
With this commit, the whole code base complies with the
kernel format style, and patches can be checked against
the kernel-provided ./scripts/checkpatch.pl
|
|
|
|
|
| |
Make better use of the bit representation, reducing one
layer of conversion.
|
| |
|
|
|
|
|
|
| |
All files are tagged as GPL, and a CREDIT file created with
references to the synaptics X driver and the matching code,
under their respective MIT and BSD licenses.
|
|
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
|
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|