Merge lp://staging/~andreas-pokorny/mir/fix-1536279 into lp://staging/mir
Status: | Merged |
---|---|
Approved by: | Daniel van Vugt |
Approved revision: | no longer in the source branch. |
Merged at revision: | 4121 |
Proposed branch: | lp://staging/~andreas-pokorny/mir/fix-1536279 |
Merge into: | lp://staging/mir |
Prerequisite: | lp://staging/~andreas-pokorny/mir/store-device-config |
Diff against target: |
716 lines (+254/-38) 15 files modified
src/client/buffer_vault.cpp (+1/-1) src/client/connection_surface_map.cpp (+7/-0) src/client/connection_surface_map.h (+2/-1) src/client/default_connection_configuration.cpp (+2/-2) src/client/input/input_devices.cpp (+39/-1) src/client/mir_surface.cpp (+5/-0) src/client/mir_surface.h (+1/-0) src/client/rpc/mir_protobuf_rpc_channel.cpp (+1/-1) src/include/client/mir/client/surface_map.h (+2/-1) src/include/client/mir/input/input_devices.h (+3/-1) tests/acceptance-tests/test_nested_input.cpp (+163/-17) tests/include/mir/test/test_protobuf_client.h (+6/-1) tests/mir_test_doubles/test_protobuf_client.cpp (+3/-2) tests/unit-tests/client/test_protobuf_rpc_channel.cpp (+15/-8) tests/unit-tests/frontend/stress_protobuf_communicator.cpp (+4/-2) |
To merge this branch: | bzr merge lp://staging/~andreas-pokorny/mir/fix-1536279 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alan Griffiths | Abstain | ||
Cemil Azizoglu (community) | Approve | ||
Kevin DuBois (community) | Approve | ||
Mir CI Bot | continuous-integration | Approve | |
Andreas Pokorny (community) | Abstain | ||
Review via email: mp+319438@code.staging.launchpad.net |
Commit message
Clear keystate and keymap on device removal (LP: #1536279)
A client window may have a "default" keymap configured. So a keystate will be tracked for each keyboard device individually. Switching away from the vt of the mirserver will trigger a removal of all devices, switching back to the server will make those devices reappear.
If the keystate is not cleared on removal any pressed key will be stuck during a vt switch.
Description of the change
This makes the keymapper in the client behave like the server on device removal.
The keystate gets cleared and when the device reappears and will be used again the default keymap will be used to create a clean keystate again.
Majority of the change is about constructing the test to have a mirserver with a nested server a focused window with a keymap configured followed by a vt switch and key presses..
FAILED: Continuous integration, rev:4080 /mir-jenkins. ubuntu. com/job/ mir-ci/ 3120/ /mir-jenkins. ubuntu. com/job/ build-mir/ 4188/console /mir-jenkins. ubuntu. com/job/ build-0- fetch/4275 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 4265 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 4265 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= zesty/4265 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= zesty/4215/ console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4215 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4215/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= zesty/4215 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= zesty/4215/ artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 4215 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 4215/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 4215 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 4215/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4215/console
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 3120/rebuild
https:/