diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-09-28 16:03:14 +0200 |
---|---|---|
committer | Robert Mader <robert.mader@posteo.de> | 2020-09-29 21:26:26 +0000 |
commit | 3a273028ae289b4196e99aa5ff3da5598c9a6925 (patch) | |
tree | 45e7687d225575dd2159a88e77f0e714c35c66c1 | |
parent | 533882ab771afb049c7205fd8214fe655cd5fa48 (diff) | |
download | mutter-3a273028ae289b4196e99aa5ff3da5598c9a6925.tar.gz |
backends/x11: Set stage on logical keyboard devicewip/carlosg/fix-im-x11
Like it's done for the pointer in other places. Without a stage assigned,
some bits (like IM handling) may end up with events ignored, and misbehave.
Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1413
-rw-r--r-- | src/backends/x11/meta-seat-x11.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backends/x11/meta-seat-x11.c b/src/backends/x11/meta-seat-x11.c index 17d2a9696..39885230a 100644 --- a/src/backends/x11/meta-seat-x11.c +++ b/src/backends/x11/meta-seat-x11.c @@ -1801,6 +1801,10 @@ meta_seat_x11_translate_event (MetaSeatX11 *seat, GINT_TO_POINTER (xev->deviceid)); clutter_event_set_device (event, device); + if (clutter_input_device_get_device_mode (device) == CLUTTER_INPUT_MODE_LOGICAL && + stage != NULL) + _clutter_input_device_set_stage (device, stage); + /* XXX keep this in sync with the evdev device manager */ n = print_keysym (event->key.keyval, buffer, sizeof (buffer)); if (n == 0) |