Merge lp:~mir-team/mir/fix-missing-hover-exit-event into lp:mir
Status: | Merged |
---|---|
Approved by: | Kevin DuBois |
Approved revision: | no longer in the source branch. |
Merged at revision: | 2329 |
Proposed branch: | lp:~mir-team/mir/fix-missing-hover-exit-event |
Merge into: | lp:mir |
Diff against target: |
113 lines (+39/-33) 2 files modified
3rd_party/android-input/android/frameworks/base/services/input/InputDispatcher.cpp (+36/-31) tests/acceptance-tests/throwback/test_client_input.cpp (+3/-2) |
To merge this branch: | bzr merge lp:~mir-team/mir/fix-missing-hover-exit-event |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Approve | |
Kevin DuBois (community) | Approve | ||
Alan Griffiths | Approve | ||
Chris Halse Rogers | Approve | ||
Daniel van Vugt | Abstain | ||
Review via email: mp+249431@code.launchpad.net |
Commit message
Enable pointer exit events. (LP: #1418569)
Description of the change
This branch fixes https:/
Doing so required two semantic changes to the input dispatcher stack:
There is a sort of extra layer of paranoia check in the InputDispatcher which prevents events from being dispatched to non foreground windows (e.g. the focused window or the target of the current touch gesture). We need to allow dispatching pointer exit events to the non foreground window though (as this is how they become non foreground!) InputDispatcher
Then around 1226 we assume just because we do not have a touched window there is nothing to dispatch in the touch state so we need to set injection state failed. In fact we need to continue (if the new branch at l1232 is not taken we will fall to 1317) and check if there are hover exit events to dispatch. If there are still no targets (e.g. no touched window (foreground) and no hover exit event) then we can finally abort the dispatch cycle now at l1361
I accidentally left the debug defines on but I am going to make a case they should be left on.
1. I've turned them on and off dozens of times. LEGACY_ INPUT_REPORT= log ANDROID_ LOG_TAGS= *:v
2. They only show up with MIR_SERVER_