XInput single-touch events aren't always filtered
Bug #637106 reported by
Chase Douglas
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Grail |
Fix Released
|
Medium
|
Unassigned | ||
utouch-grail (Ubuntu) |
Fix Released
|
Medium
|
Unassigned |
Bug Description
When performing a gesture, single touch events are not always filtered out. This appears to be because one of the touches has moved far enough to cause a single touch event before all touches have hit the screen and force recognition for gestures.
Related branches
lp:~oif-packaging/grail/packaging.v1.0.20
- Chase Douglas (community): Approve
-
Diff: 932 lines (+324/-215)18 files modifiedChangeLog (+131/-0)
config-aux/ltmain.sh (+2/-2)
configure (+10/-10)
configure.ac (+1/-1)
debian/changelog (+7/-0)
src/evbuf.h (+1/-1)
src/gestures-drag.c (+14/-0)
src/gestures-pinch.c (+15/-1)
src/gestures-rotate.c (+15/-1)
src/gestures-tapping.c (+6/-2)
src/grail-api.c (+90/-162)
src/grail-event.c (+2/-16)
src/grail-gestures.c (+14/-7)
src/grail-gestures.h (+3/-2)
src/grail-impl.h (+2/-0)
src/grail-inserter.c (+9/-0)
src/grail-inserter.h (+2/-0)
src/grail-recognizer.h (+0/-10)
Changed in utouch-grail: | |
status: | New → Triaged |
Changed in utouch-grail (Ubuntu): | |
status: | New → Triaged |
Changed in utouch-grail: | |
importance: | Undecided → Medium |
Changed in utouch-grail (Ubuntu): | |
importance: | Undecided → Medium |
To post a comment you must log in.
Right now, when grail receives a complete touch frame it either passes through the touch data or it sends a gesture event. While a gesture is still being recognized, the touch data is sent.
The issue may be resolved by implicitly subscribing to single-touch gestures inside grail. When a single-touch gesture is recognized but not subscribed by any clients, the gesture is then transformed into traditional evdev input events for processing by X.
There are two issues with this approach:
1. This will add a small delay to all single-touch movements, even for non gesture aware clients, while they are still being recognized. Although that sounds bad, this delay is actually the entire point of this issue, and I think it's inevitable. We need to ensure we tune the parameters properly to make this reasonable.
2. The change would require a substantial reworking of the input event pass-through mechanism in grail. This could be a cause for regressions, and we are very late into the Maverick cycle.