grail creates two identical gestures under certain circustances
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Grail |
Fix Released
|
Medium
|
Daniel d'Andrada | ||
grail (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Precise |
Fix Released
|
Medium
|
Francis Ginther |
Bug Description
[Impact]
The gestures generated by grail must accurately represent the input from the user. This bug can cause multiple gestures to be created for one action, causing unexpected behavior in client applications. This may manifest as unintended user interactions or as a "locking up" of touch input devices.
[Test Case]
Preconditions:
there's a subscription for 3-touches Touch gestures
Steps that lead to the bug:
The user lays 3 fingers over a touchscreen or trackpad and the device momentarily (just for a couple of milliseconds) loses contact with one of the fingers.
That will cause the touch for that finger to end and a new touch to be created for that same finger, all that happening before gesture composition time (60 milliseconds) is reached.
Expected outcome:
The original gesture ends and a new one with the remaining three touch points is created.
Actual outcome:
The original gesture ends and two new gestures, both containing the remaining three touch points, are created.
When performing this action in Unity, a touchscreen will appear to "lock up" because one of the gestures is not accepted or rejected properly. Users can attempt many three touch drags to determine if the issue is resolved.
[Regression Potential]
Small. The source code changes are non-trivial, but are the minimum required to resolve the issue. A regression test has been added for this issue. All previous functional and regression test cases continue to pass.
Areas of concern for testing is whether gestures continue to operate properly, and whether touchscreens become unresponsive after gestural or pointer interactions.
Related branches
- Chase Douglas (community): Approve
-
Diff: 863 lines (+488/-64)12 files modifiedconfigure.ac (+5/-0)
src/event.cpp (+2/-2)
src/forward.h (+20/-0)
src/handle.cpp (+1/-1)
src/recognizer.cpp (+1/-0)
src/regular-recognizer.cpp (+42/-42)
src/regular-recognizer.h (+4/-5)
src/slice.cpp (+15/-14)
test/regular/Makefile.am (+1/-0)
test/regular/grail-fixture.cpp (+83/-0)
test/regular/grail-fixture.h (+6/-0)
test/regular/intermittent_3touch.cpp (+308/-0)
Changed in utouch-grail: | |
status: | In Progress → Fix Committed |
Changed in utouch-grail: | |
milestone: | none → 3.0.6 |
Changed in utouch-grail: | |
status: | Fix Committed → Fix Released |
affects: | utouch-grail (Ubuntu) → grail (Ubuntu) |
Changed in grail (Ubuntu): | |
status: | New → Fix Released |
description: | updated |
Changed in grail (Ubuntu Precise): | |
status: | New → In Progress |
importance: | Undecided → High |
importance: | High → Medium |
assignee: | nobody → Francis Ginther (fginther) |
description: | updated |
Hello Daniel, or anyone else affected,
Accepted grail into precise-proposed. The package will build now and be available at http:// launchpad. net/ubuntu/ +source/ grail/3. 0.6-0ubuntu0. 12.04.01 in a few hours, and then in the -proposed repository.
Please help us by testing this new package. See https:/ /wiki.ubuntu. com/Testing/ EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.
If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification- failed. In either case, details of your testing will help us make a better decision.
Further information regarding the verification process can be found at https:/ /wiki.ubuntu. com/QATeam/ PerformingSRUVe rification . Thank you in advance!