Mir

Merge lp:~alan-griffiths/mir/fix-1718632 into lp:mir

Proposed by Alan Griffiths
Status: Merged
Merge reported by: Chris Halse Rogers
Merged at revision: not available
Proposed branch: lp:~alan-griffiths/mir/fix-1718632
Merge into: lp:mir
Prerequisite: lp:~alan-griffiths/mir/fix-1717561
Diff against target: 62 lines (+38/-0)
1 file modified
src/server/frontend/wayland/wayland_connector.cpp (+38/-0)
To merge this branch: bzr merge lp:~alan-griffiths/mir/fix-1718632
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Needs Fixing
Gerry Boland (community) Approve
Review via email: mp+331205@code.launchpad.net

Commit message

Handle focus events in the Wayland frontend (so that keyboard input works)

To post a comment you must log in.
Revision history for this message
Gerry Boland (gerboland) wrote :

Yep, that's the thing

review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:4260
https://mir-jenkins.ubuntu.com/job/mir-ci/3679/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/5043/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/5279
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/5267
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/5267
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/5267
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5086
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5086/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5086
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5086/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5086
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5086/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5086
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5086/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5086
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5086/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5086
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5086/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5086
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5086/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5086/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/3679/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) :
review: Approve (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Autolanding.
More details in the following jenkins job:
https://mir-jenkins.ubuntu.com/job/mir-autolanding/1437/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/5045
    FAILURE: https://mir-jenkins.ubuntu.com/job/generic-land-mp/1571/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/1572/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/5281
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/5269
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/5269
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/5269
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5088
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=artful/5088/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5088
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/5088/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5088
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/5088/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5088
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/5088/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5088
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/5088/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5088
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=artful/5088/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5088
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=mesa,release=zesty/5088/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5088
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/5088/artifact/output/*zip*/output.zip

review: Needs Fixing (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/server/frontend/wayland/wayland_connector.cpp'
--- src/server/frontend/wayland/wayland_connector.cpp 2017-09-22 15:51:22 +0000
+++ src/server/frontend/wayland/wayland_connector.cpp 2017-09-22 15:51:22 +0000
@@ -786,6 +786,29 @@
786 });786 });
787 }787 }
788788
789 void handle_event(MirWindowEvent const* event, wl_resource* target)
790 {
791 if (mir_window_event_get_attribute(event) == mir_window_attrib_focus)
792 {
793 executor->spawn(
794 [resource = resource, serial = wl_display_next_serial(wl_client_get_display(client)),
795 target = target, focussed = mir_window_event_get_attribute_value(event)]()
796 {
797 if (focussed)
798 {
799 wl_array key_state;
800 wl_array_init(&key_state);
801 wl_keyboard_send_enter(resource, serial, target, &key_state);
802 wl_array_release(&key_state);
803 }
804 else
805 {
806 wl_keyboard_send_leave(resource, serial, target);
807 }
808 });
809 }
810 }
811
789private:812private:
790 std::shared_ptr<mir::Executor> const executor;813 std::shared_ptr<mir::Executor> const executor;
791814
@@ -998,6 +1021,14 @@
998 }1021 }
999 }1022 }
10001023
1024 void handle_event(MirWindowEvent const* event, wl_resource* target) const
1025 {
1026 for (auto& listener : listeners)
1027 {
1028 listener->handle_event(event, target);
1029 }
1030 }
1031
1001private:1032private:
1002 std::vector<std::shared_ptr<InputInterface>> listeners;1033 std::vector<std::shared_ptr<InputInterface>> listeners;
1003};1034};
@@ -1214,6 +1245,13 @@
1214 default:1245 default:
1215 break;1246 break;
1216 }1247 }
1248 break;
1249 }
1250 case mir_event_type_window:
1251 {
1252 auto const wev = mir_event_get_window_event(&event);
1253
1254 seat->acquire_keyboard_reference(client).handle_event(wev, target);
1217 }1255 }
1218 default:1256 default:
1219 break;1257 break;

Subscribers

People subscribed via source and target branches