From 928a40f32806f73ae28b052f1d7ec014dccad415 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 24 Apr 2018 14:22:03 +0200 Subject: [PATCH] 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. --- src/wayland/meta-wayland-seat.c | 6 ++++-- 1 file 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)