summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Simplify book-keeping of active gesturesHenrik Rydberg2010-09-213-17/+10
| | | | | | | | | The current frame computation returns the event types to filter, which is less useful than knowing what gesture types are active in the frame. Add the active gesture types to the frame struct and simplify usage. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* grail v1.0.13v1.0.13Henrik Rydberg2010-09-101-1/+1
|
* Allow slow tappingHenrik Rydberg2010-09-101-1/+1
| | | | | | | 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>
* Inhibit taps immediately after a finger is liftedHenrik Rydberg2010-09-102-2/+7
| | | | | | | | | 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>
* Only emit abs events when motion is activeHenrik Rydberg2010-09-101-2/+9
| | | | | | | | | | | | | 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>
* Cancel tapping also on zoom eventsHenrik Rydberg2010-09-091-1/+1
| | | | | | | | | 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>
* Discard tapping even when there are zero events between down and upHenrik Rydberg2010-09-091-1/+1
| | | | | | | | | 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>
* Support legacy devicesHenrik Rydberg2010-09-093-2/+123
| | | | | | | | | 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>
* Make sure contact area is always definedHenrik Rydberg2010-09-091-0/+6
| | | | | | | | | 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>
* grail v1.0.12v1.0.12Henrik Rydberg2010-09-011-1/+1
|
* Do not compute velocity until enough data is availableHenrik Rydberg2010-09-011-1/+1
| | | | | | | | 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>
* Make orientation computation more robustHenrik Rydberg2010-08-301-5/+4
| | | | | | | | | 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>
* grail v1.0.11v1.0.11Henrik Rydberg2010-08-261-1/+1
|
* Introduce tapping from any finger configurationHenrik Rydberg2010-08-262-50/+34
| | | | | | | | | | 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>
* Trim tapping timeoutsHenrik Rydberg2010-08-261-2/+2
| | | | | | Reduce the tapping timeout to 200 ms. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Correct abs event handlingHenrik Rydberg2010-08-263-24/+50
| | | | | | | | | | 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>
* Plug hole in tentative gestures state during finger transitionHenrik Rydberg2010-08-262-7/+5
| | | | | | | | | 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>
* grail v1.0.10v1.0.10Henrik Rydberg2010-08-201-1/+1
|
* Declare missing header file for distro packageHenrik Rydberg2010-08-201-0/+1
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* grail v1.0.9v1.0.9Henrik Rydberg2010-08-191-1/+1
|
* Add contact information to the property listHenrik Rydberg2010-08-1910-191/+220
| | | | | | | | | | 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>
* Crank up the maximum number of propertiesHenrik Rydberg2010-08-191-1/+1
| | | | | | | | To prepare for the (for maverick only) addition of individual contact information via the properties array, increase the maximum number of contacts. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Use the touch_caps directly rather than grail_get_units()Henrik Rydberg2010-08-192-12/+16
|
* Add grail_contact and a method to retrieve the current contactsHenrik Rydberg2010-08-194-1/+101
| | | | | | | This patch adds the possibility to extract the current set of contacts from the grail state. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Make gesture inserter visible to all local filesHenrik Rydberg2010-08-192-21/+30
| | | | | | Also remove the transformed flag in favor of a unit transformation. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Reserve one mask position for system useHenrik Rydberg2010-08-191-3/+7
| | | | | | This is needed for gesture propagation outside of grail. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Make grail implementation visible to all local filesHenrik Rydberg2010-08-192-9/+37
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Add documentation to structs and functions in grail.hHenrik Rydberg2010-08-191-5/+138
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Simplify touch machineryHenrik Rydberg2010-08-199-324/+218
| | | | | | | | | | 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>
* Repackaged to utouch-grail v1.0.8v1.0.8Henrik Rydberg2010-08-126-23/+16
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* the bug fix, raw materialHenrik Rydberg2010-08-121-3/+10
|
* grail v1.0.7v1.0.7Henrik Rydberg2010-08-111-1/+1
|
* add a translation utility to grailHenrik Rydberg2010-08-113-0/+121
| | | | | | | | 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>
* api: add bounding box to rotate gesturesHenrik Rydberg2010-08-112-3/+17
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* split out bounding box computationHenrik Rydberg2010-08-113-22/+32
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* add main type numbers to grail type propertiesHenrik Rydberg2010-08-111-0/+4
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* janitor: conformant argument order in apiHenrik Rydberg2010-08-113-5/+5
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Add environment and meta gesturesHenrik Rydberg2010-08-117-3/+154
| | | | | | | | | | | 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>
* grail v1.0.6v1.0.6Henrik Rydberg2010-08-101-1/+1
|
* Count the extra touch event and mask additional abs eventsHenrik Rydberg2010-08-101-0/+4
| | | | | | | Not counting the BTN_TOUCH event implied not emitting the sync event, which confused evdev. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* grail v1.0.5Henrik Rydberg2010-08-101-1/+1
|
* change rotation units to anglesHenrik Rydberg2010-08-102-8/+8
| | | | | | | Use angle units, such that a complete revolution corresponds to 2 pi. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* pinch: add bounding box to property listHenrik Rydberg2010-08-102-2/+33
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Make tapping position appear properlyHenrik Rydberg2010-08-103-4/+15
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Filter kernel touch and tap buttonsHenrik Rydberg2010-08-101-1/+27
| | | | | | Reinsert BTN_TOUCH depending on the drag gesture Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Filter abs events by default in grail-gestureHenrik Rydberg2010-08-104-4/+10
| | | | | | Also connect the timeout for press with the timeout of tapping. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* always send pointer movement gesturesHenrik Rydberg2010-08-105-10/+14
| | | | | | | 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>
* Add property declarations to grail-typesHenrik Rydberg2010-08-109-47/+108
| | | | | | Also add accumulated values for delta and velocity properties. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* api: Rename gestures to conform to design docsHenrik Rydberg2010-08-1010-121/+53
| | | | | | Use the names drag, pinch and rotate, and remove the combo gesture. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* grail v1.0.4v1.0.4Henrik Rydberg2010-08-081-1/+1
|