Merge lp:~afrantzis/mir/always-consume-input-events-in-clients into lp:mir
Status: | Rejected |
---|---|
Rejected by: | Alan Griffiths |
Proposed branch: | lp:~afrantzis/mir/always-consume-input-events-in-clients |
Merge into: | lp:mir |
Diff against target: |
248 lines (+113/-82) 2 files modified
src/client/mir_surface.cpp (+13/-6) tests/unit-tests/client/test_client_mir_surface.cpp (+100/-76) |
To merge this branch: | bzr merge lp:~afrantzis/mir/always-consume-input-events-in-clients |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alan Griffiths | Needs Information | ||
PS Jenkins bot (community) | continuous-integration | Approve | |
Review via email: mp+209313@code.launchpad.net |
Commit message
client: Process input events even in clients that don't handle input
Description of the change
client: Process input events even in clients that don't handle input
This is one alternative solution for bug 1213804. See comments in bug 1213804 for more information and pointers to other options.
Currently, focused client surfaces that don't handle input events don't process them at all. Such clients never acknowledge receiving input events, causing the input system to retry sending the events.
If in the interval between two send attempts another app gains the focus, the input system sends the event to the newly focused app/surface, leading to bug 1213804 (i.e. the target of events is always the currently focused surfaced, not a particular surface).
Ideally, the input system should be able to handle this situation better, e.g., by resending the event only if the focused surface the event was originally targeted at hasn't changed. However, the input subsystem is full of intricacies and I am not familiar enough with it to tell if this behavior is a bug or has a particular reason for being there.
If we decide that the proposed solution/workaround is not acceptable, I can dive more deeply into the abyss known as the input subsystem.
Unmerged revisions
- 1445. By Alexandros Frantzis
-
client: Process input events even in clients that don't handle input
PASSED: Continuous integration, rev:1445 jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- ci/980/ jenkins. qa.ubuntu. com/job/ mir-android- trusty- i386-build/ 1115 jenkins. qa.ubuntu. com/job/ mir-clang- trusty- amd64-build/ 1113 jenkins. qa.ubuntu. com/job/ mir-mediumtests -trusty- touch/699 jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- trusty- amd64-ci/ 712 jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- trusty- amd64-ci/ 712/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- trusty- armhf-ci/ 717 jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- trusty- armhf-ci/ 717/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- trusty- armhf/700 jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- trusty- armhf/700/ artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -runner- mako/666 s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 4463
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/mir- team-mir- development- branch- ci/980/ rebuild
http://