summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Reorganize input event emulation codeHenrik Rydberg2010-09-211-34/+23
| | | | | | | | | Inject the emulated events into the event buffer instead, and move the pointer logic into the emulation handler. Introduces no logical changes, but reveals the bug in the position event frequency. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Move input event filter from tail side to head sideHenrik Rydberg2010-09-211-12/+3
| | | | | | | | There is no need to buffer events that will be ignored later on, so move the event filter to the upstream side. This also allows the event buffer to be used for injected events. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* 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>
* 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-092-2/+122
| | | | | | | | | 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>
* 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>
* 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-262-21/+49
| | | | | | | | | | 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>
* Declare missing header file for distro packageHenrik Rydberg2010-08-201-0/+1
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Add contact information to the property listHenrik Rydberg2010-08-199-191/+151
| | | | | | | | | | 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>
* 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-192-0/+52
| | | | | | | 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>
* Make grail implementation visible to all local filesHenrik Rydberg2010-08-192-9/+37
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Simplify touch machineryHenrik Rydberg2010-08-197-271/+177
| | | | | | | | | | 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-122-15/+8
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* the bug fix, raw materialHenrik Rydberg2010-08-121-3/+10
|
* add a translation utility to grailHenrik Rydberg2010-08-111-0/+113
| | | | | | | | 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-111-3/+13
| | | | 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>
* janitor: conformant argument order in apiHenrik Rydberg2010-08-112-3/+3
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Add environment and meta gesturesHenrik Rydberg2010-08-116-3/+146
| | | | | | | | | | | 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>
* 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>
* change rotation units to anglesHenrik Rydberg2010-08-101-5/+5
| | | | | | | 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-101-2/+29
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Make tapping position appear properlyHenrik Rydberg2010-08-102-4/+13
| | | | 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-103-4/+9
| | | | | | 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-104-9/+13
| | | | | | | 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-108-47/+98
| | | | | | 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-108-93/+20
| | | | | | Use the names drag, pinch and rotate, and remove the combo gesture. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Trim the bars for action somewhatHenrik Rydberg2010-08-081-2/+2
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Keep both raw and action delta in move modelHenrik Rydberg2010-08-087-30/+43
| | | | | | | | | 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>
* Send proper begin/update/end status for gesturesHenrik Rydberg2010-08-075-8/+12
| | | | | | For transient gestures like taps, use update only. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Add configurable pointer gestureHenrik Rydberg2010-08-073-4/+10
| | | | | | | | 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>
* gesture: Improved tickle/active logicHenrik Rydberg2010-08-077-93/+107
| | | | | Reorganize the mode model to use bitmasks for tickle and active, and refine the tickle logic for each gesture.
* move: accumulate delta while inactiveHenrik Rydberg2010-08-071-3/+8
|
* treat one-finger moves in move model and simplify tapping logicHenrik Rydberg2010-08-073-9/+13
|
* Remove unused declarationsHenrik Rydberg2010-08-071-5/+0
| | | | Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
* Update README and copyright in all filesHenrik Rydberg2010-08-0617-46/+38
| | | | | | Add the author to the copyright, courtesy of Canonical Ltd. Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>
* initial bzr repo at rev 27Henrik Rydberg2010-08-0618-0/+1828