summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2018-04-24 14:22:03 +0200
committerCarlos Garnacho <carlosg@gnome.org>2018-04-24 23:48:01 +0200
commit423c5f8e77487ad1731fd7f887ee4213b016651b (patch)
tree00643327b60bf80abdfb5c0bed65cce00b81b28d
parent3bbff94878ee72c5c945aad289a03755ea591c96 (diff)
downloadmutter-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.c6
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)