Client doesn't get gestures from newly available device
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Geis |
Fix Released
|
Medium
|
Stephen M. Webb | ||
utouch-geis (Ubuntu) |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Preconditions:
Have a multitouch device disconnected. E.g. Apple Magic Trackpad not-paired/
Steps to reproduce the problem:
1- Start a geis client. (e.g. unityshell plugin in compiz, geisview, utouch-
2- Connect your multitouch device. E.g. turn on bluetooth and connect to your Apple Magic Trackpad. A GEIS_EVENT_
3- Do some multitouch gestures on that multitouch device
Expected outcome:
Geis client receives gesture events from that device.
Actual outcome:
No gesture event comes in.
E.g unity won't respond to any gesture
Restarting the geis client solves the problem, since the multitouch device will already be available before the new client instance comes up.
E.g. after restarting compiz, unity starts responding to multitouch gestures
Related branches
- Chase Douglas (community): Approve
-
Diff: 919 lines (+630/-45)9 files modifiedlibutouch-geis/backend/grail/geis_grail_backend.c (+151/-42)
libutouch-geis/backend/grail/geis_ugsubscription_store.c (+39/-1)
libutouch-geis/backend/grail/geis_ugsubscription_store.h (+14/-0)
libutouch-geis/geis_filter_term.c (+123/-0)
libutouch-geis/geis_filter_term.h (+11/-0)
testsuite/geis2/gtest_devices.cpp (+182/-2)
testsuite/libutouch-geis/Makefile.am (+1/-0)
testsuite/libutouch-geis/check_filter_term.c (+107/-0)
testsuite/libutouch-geis/check_geis2_internals.c (+2/-0)
Changed in utouch-geis: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
Changed in utouch-geis: | |
milestone: | none → utouch-geis-2.2.7 |
assignee: | nobody → Stephen M. Webb (bregma) |
Changed in utouch-geis (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in utouch-geis: | |
milestone: | utouch-geis-2.2.7 → utouch-geis-2.2.8 |
Changed in utouch-geis: | |
status: | Confirmed → In Progress |
Changed in utouch-geis (Ubuntu): | |
status: | Triaged → In Progress |
Changed in utouch-geis: | |
status: | In Progress → Fix Committed |
Changed in utouch-geis: | |
status: | Fix Committed → Fix Released |
I believe this is due to a bug I am tracking down right now. When a touch has only one listener, the listener is a grab, and the listener accepts before the touch ends, the X server does not properly dispose of the touch record. This causes problems with future touches. The end result is that on an indirect device, touch events will fail to be generated, which causes gestures to fail.
I hope to have a fix uploaded soon.