| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
For the benefit of hardware that cannot accurately meet the desirable
response times, allow for tapping times up to 300 ms.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
| |
The intentional tap starts with a finger in the air. This patch
treats the sequence up-down-up as unintentional, unless performed
with a single finger. Fixes the problem with accidental taps during
multi-finger gestures.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This bug was hidden behind the motion inhibit during tapping,
but resurfaced when tapping from resting finger was introduced.
With this patch, pointer movement is inhibited also when lifting
fingers from the surface.
Ideally, tapping should be treated as a transient event, which would
allow zero pointer event also _before_ the tap, but presently unity
seems to depend on the initial pointer movement as a touch-down event.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
| |
The current code cancels tapping when dragging is active. This
patch adds zooming to the set, to inhibit tapping also when a
perfect zoom without dragging is performed.
Reported-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
| |
The current logic assumes there will be at least one frame with
between touch up and touch down or the tap will not be properly
timed out. Fixed with this patch.
Reported-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
| |
Simulate MT touch events for legacy devices that support the
DOUBLETAP, TRIPLETAP and QUADTAP events. This allows multi-finger
tap and drag gestures to be emitted, providing a basic level of
MT functionality for legacy devices.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
| |
Some devices do not always send touch_minor after touch_major
has been set. According to the MT protocol, this case should
be treated as if minor is equal to major. This patch makes sure
touch_minor is never zero when touch_major is set.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
| |
The first few ticks since a configuration change are not really
suited for velocity computation, so move the speed computation
over to the periodic sampling point.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
| |
The MT protocol defines the angle to be between -Pi/2 and Pi/2,
and expects the defined range to be symmetric around zero.
Make the angle computation more robust against varying definitions
in the kernel drivers.
Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>
|
| |
|
|
|
|
|
|
|
|
| |
The current code only emits taps from zero fingers to N fingers.
This patch introduces tapping from any prior finger configuration.
A tap is defined as an increased number of fingers followed by a
decrease within the tap timeout. A tap is reported as the maximum
number of fingers present during the tap sequence.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
| |
Reduce the tapping timeout to 200 ms.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
|
| |
The current code lets abs events through during one-finger drags,
and tapping does not work properly due to abs events not always
being present during taps. Track the pointer position and emit abs
events only if no gestures are in effect, and only if not explicitly
filtered.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
| |
During finger configuration transition, as well as after a tap,
there would be no tentative gestures registered in the instantiator,
leading to faulty emission of motion events. Fixed with this patch.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
|
| |
Add the five first contacts to the property list, and unify the
handling of all gesture types in this regard. To avoid duplication,
move the scaling of properties closer to the gesture recognizer.
Move all gesture event handling code to grail-event.c, simplifying
the structure somewhat.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| | |
|
| |
|
|
|
|
|
| |
This patch adds the possibility to extract the current set of
contacts from the grail state.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
| |
Also remove the transformed flag in favor of a unit transformation.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
|
| |
To be able to model touch information uniformly across all supported
devices, the semantics of the touch attributes has to be treated
explicitly. Drop the generic touch property array and replace it
by an actual structure. In addition, the touch-engine abstraction
turned out to not be needed, so drop it as well.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| | |
|
| |
|
|
|
|
|
|
| |
By calling the grail_set_bbox(), grail will do translation of api
coordinates and matching properties to an external coordinate system,
such as screen coordinates.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
|
|
| |
With meta gestures, the gesture starts given a certain number of
fingers, but can then continue even if the number of fingers change.
By configuration, such gestures live on a different priority plane
from normal gestures. To match window manager specs, this patch adds
the environment and meta planes, and add drag, pinch and rotate gestures
initiated with three and four fingers, respectively.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
| |
Not counting the BTN_TOUCH event implied not emitting the sync
event, which confused evdev.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
| |
Use angle units, such that a complete revolution corresponds
to 2 pi.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
| |
Reinsert BTN_TOUCH depending on the drag gesture
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
| |
Also connect the timeout for press with the timeout of tapping.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
| |
Always send drag events for one-finger touches, but only filter
the ABS_X/Y events if grail_filter_abs_events() is set to true.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
| |
Also add accumulated values for delta and velocity properties.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
| |
Use the names drag, pinch and rotate, and remove the combo gesture.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
|
| |
Accumulated values can be obtained either by using the raw_delta,
which is the actual (filtered) change between frames, or by using
the action delta, which sums up to the same position, but in a non-
linear fashion. Use the raw delta for pointer gestures.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
| |
For transient gestures like taps, use update only.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
|
|
| |
In some applications, it is desirable to treat pointer movements
as a gesture. This patch adds a gru configuration parameter which,
then true, makes grail emit pointer gesture events.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
| |
Reorganize the mode model to use bitmasks for tickle and active,
and refine the tickle logic for each gesture.
|
| | |
|
| | |
|
| |
|
|
| |
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
| |
|
|
|
|
| |
Add the author to the copyright, courtesy of Canonical Ltd.
Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>
|
| |
|