quick, single-finger, taps not correctly processed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Grail |
Fix Released
|
High
|
Daniel d'Andrada | ||
grail (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Precise |
Fix Released
|
Medium
|
Francis Ginther |
Bug Description
[Impact]
Proper usage of grail gestures requires processing gestures only after they have finished "construction". Software, such as Unity, waits for this event in order to handle gestures properly. When the event does not occur, a grail gesture may be left unaccepted and unrejected, which may cause the touch interface to "hang" and become unresponsive to future taps. This bug causes grail to not emit a construction finished event under certain circumstances.
[Test Case]
Preconditions:
- Activate a subscription for single-touch gestures of class "Touch".
- There should be no other application with higher priority for getting ownership over the touches.
Steps to reproduce the problem:
1 - Perform a quick tap on a touchscreen.
- That will produce 3 utouch-frame events
a) a frame begin with owned == false
b) a frame update with owned == true
c) a frame end
Expected outcome:
The following slice events should be sent by grail:
1. Slice Begin, construction finished == false
2. Slice Update, construction finished == false
3. Slice End, construction finished == true
Actual outcome:
The following slice events are sent by grail:
1. Slice Begin, construction finished == false
2. Slice Update, construction finished == false
3. Slice Update, construction finished == false
There is currently no code released that performs these steps. However, there is code in development for Unity that causes this behavior. One of the gesture stack developers will need to verify this bug is fixed.
[Regression Potential]
Small. The source code changes are minimal; a couple function calls are reordered so they behave properly. The rest of the changes introduce a test mock framework and a regression test for this issue. All previous functional and regression tests 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
- Open Input Framework Team: Pending requested
-
Diff: 1266 lines (+913/-117)20 files modified.bzrignore (+4/-3)
configure.ac (+8/-1)
m4/gtest.m4 (+53/-0)
m4/xorg-gtest.m4 (+7/-7)
src/atomic-recognizer.cpp (+2/-1)
src/recognizer.cpp (+17/-13)
src/recognizer.h (+1/-0)
src/regular-recognizer.cpp (+2/-1)
test/Makefile-xorg-gtest.am (+0/-61)
test/Makefile.am (+5/-0)
test/README (+11/-0)
test/gtest/Makefile.am (+20/-0)
test/integration/Makefile.am (+15/-30)
test/regular/Makefile.am (+52/-0)
test/regular/frame_mock.cpp (+248/-0)
test/regular/frame_mock.h (+61/-0)
test/regular/grail-fixture.cpp (+145/-0)
test/regular/grail-fixture.h (+45/-0)
test/regular/one-touch-gest-finished.cpp (+115/-0)
test/regular/still-gest-finishes.cpp (+102/-0)
Changed in utouch-grail: | |
assignee: | nobody → Daniel d'Andrada (dandrader) |
importance: | Undecided → High |
status: | New → In Progress |
Changed in utouch-grail: | |
status: | In Progress → Fix Committed |
Changed in utouch-grail: | |
milestone: | none → 3.0.6 |
status: | Fix Committed → Fix Released |
affects: | utouch-grail (Ubuntu) → grail (Ubuntu) |
Changed in grail (Ubuntu): | |
status: | New → Fix Released |
description: | updated |
description: | updated |
Changed in grail (Ubuntu Precise): | |
importance: | Undecided → Medium |
assignee: | nobody → Francis Ginther (fginther) |
status: | New → In Progress |
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!