diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2018-04-24 14:22:03 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-04-24 14:22:03 +0200 |
commit | 0fe7da2bf91cb47f27ab5fdfbd713a01acd60570 (patch) | |
tree | 5212e9dea09c5eb3837a9232bf88f9fd501f4467 | |
parent | 4ef886f51e689695028c60ad55655e5fc3883ed3 (diff) | |
download | mutter-0fe7da2bf91cb47f27ab5fdfbd713a01acd60570.tar.gz |
wayland: Let IM events go throughwip/carlosg/let-im-events-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..1a5050b25 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) == 0 && + !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) == 0 && + !event_from_supported_hardware_device (seat, event)) return FALSE; switch (event->type) |