diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2018-04-24 14:22:03 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-04-24 23:48:01 +0200 |
commit | 423c5f8e77487ad1731fd7f887ee4213b016651b (patch) | |
tree | 00643327b60bf80abdfb5c0bed65cce00b81b28d | |
parent | 3bbff94878ee72c5c945aad289a03755ea591c96 (diff) | |
download | mutter-423c5f8e77487ad1731fd7f887ee4213b016651b.tar.gz |
wayland: Let IM events go through
These paths implicitly relied on the forwarded IM key events having
a source_device backed by a real HW device. This assumption is no
longer held true since commit b5328c977.
Explicitly check the INPUT_METHOD flag so they are handled as they
should despite not being "real HW" events.
-rw-r--r-- | src/wayland/meta-wayland-seat.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c index dc013c002..7c86739f6 100644 --- a/src/wayland/meta-wayland-seat.c +++ b/src/wayland/meta-wayland-seat.c @@ -325,7 +325,8 @@ void meta_wayland_seat_update (MetaWaylandSeat *seat, const ClutterEvent *event) { - if (!event_from_supported_hardware_device (seat, event) && + if (!(clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_INPUT_METHOD) && + !event_from_supported_hardware_device (seat, event) && !event_is_synthesized_crossing (event)) return; @@ -363,7 +364,8 @@ gboolean meta_wayland_seat_handle_event (MetaWaylandSeat *seat, const ClutterEvent *event) { - if (!event_from_supported_hardware_device (seat, event)) + if (!(clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_INPUT_METHOD) && + !event_from_supported_hardware_device (seat, event)) return FALSE; switch (event->type) |