Geis delivers events from gestures that no longer exist
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Geis |
Fix Released
|
Low
|
Daniel d'Andrada | ||
geis (Ubuntu) |
Fix Released
|
Low
|
Unassigned | ||
Precise |
Fix Released
|
Low
|
Francis Ginther |
Bug Description
We need this fix backported from Quantal as it's in the code that was changed to the new naming scheme, from utouch-geis to just geis, that must be done in Precise as well.
[Test Case]
Steps to reproduce the problem:
- Disable atomic gestures rules.
- Subscribe for 2-touches Touch gestures.
- Move 4 simultaneous touch points on a touchscreen (in an environment where no other process/client would intercept those touches).
- Check that 6 different 2-touch Touch gestures begin.
- Accept two of them that are not overlapping (i.e. that have no common touch point between the two) and reject any others.
Expected outcome:
If you happen to get a "Gesture Begin" from a gesture that overlaps one that was already accepted, you can successfully reject it.
Actual oucome:
You get "Gesture Begin" and "Gesture Update" events from gestures that overlaps the ones were already accepted and if you try to reject them the call fails.
[Comments]
utouch-geis keeps in its event queue (and therefore ends up delivering them) events from gestures that no longer exist (gestures that overlap an accepted one are automatically canceled), hence the failure when you try to reject them.
[Regression Potential]
A regression was found later on, after further use and testing, and already fixed. It's the fix for bug 1015775. Thus I believe we can safely say that the regression potential now is minimal.
Related branches
- Chase Douglas (community): Approve
-
Diff: 557 lines (+419/-14)5 files modifiedlibutouch-geis/backend/grail/geis_grail_backend.c (+120/-11)
testsuite/geis2/Makefile.am (+2/-1)
testsuite/geis2/gtest_gbe_outdated_events.cpp (+268/-0)
testsuite/geis2/gtest_grail_backend.cpp (+26/-2)
testsuite/geis2/gtest_grail_backend.h (+3/-0)
Changed in utouch-geis: | |
importance: | Undecided → Low |
assignee: | nobody → Daniel d'Andrada (dandrader) |
status: | New → In Progress |
Changed in utouch-geis: | |
status: | In Progress → Fix Committed |
Changed in utouch-geis (Ubuntu): | |
importance: | Undecided → Low |
Changed in utouch-geis: | |
status: | Fix Committed → Fix Released |
affects: | utouch-geis (Ubuntu) → geis (Ubuntu) |
Changed in geis (Ubuntu Precise): | |
status: | New → In Progress |
importance: | Undecided → Low |
assignee: | nobody → Francis Ginther (fginther) |
description: | updated |
This bug was fixed in the package utouch-geis - 2.2.10-0ubuntu1
---------------
utouch-geis (2.2.10-0ubuntu1) quantal-proposed; urgency=low
* New upstream release v2.2.10. nFlags (lp: #813819) ATTRIBUTE_ CONSTRUCTION_ FINISHED event
- fixes pinch radius and drag delta calculations (lp: #985916) (lp: #986215)
- changes type of geisSubscriptio
- changes direct devices to use window coordinates (lp: #984069)
- reports device axis extents, if available (lp: #987539)
- removes overlapping events when a gesture is accepted (lp: #1001365)
- avoids trying to start a DBus session if there is none already
(lp: #997630)
- removes XCB back end
- adds GEIS_EVENT_
- adds a compile-time sentinel check to variadic calls in the API
-- <email address hidden> (Stephen M. Webb) Wed, 06 Jun 2012 09:51:23 -0400