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 14:22:03 +0200
commit0fe7da2bf91cb47f27ab5fdfbd713a01acd60570 (patch)
tree5212e9dea09c5eb3837a9232bf88f9fd501f4467
parent4ef886f51e689695028c60ad55655e5fc3883ed3 (diff)
downloadmutter-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.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..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)