[mutter/wip/carlosg/fix-im-x11] backends/x11: Set stage on logical keyboard device




commit 1c4fd9fb6d136ffccaddb730f962549f2807b38e
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon Sep 28 16:03:14 2020 +0200

    backends/x11: Set stage on logical keyboard device
    
    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

 src/backends/x11/meta-seat-x11.c | 4 ++++
 1 file changed, 4 insertions(+)
---
diff --git a/src/backends/x11/meta-seat-x11.c b/src/backends/x11/meta-seat-x11.c
index 17d2a96964..39885230a0 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)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]