[mutter/wip/carlosg/fix-im-x11-3.36] backends/x11: Set stage on logical keyboard device
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/fix-im-x11-3.36] backends/x11: Set stage on logical keyboard device
- Date: Tue, 29 Sep 2020 22:16:14 +0000 (UTC)
commit 3536ad08c4de9666e426524e6e9ee18dbba93f2a
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
(cherry-picked from commit 3a273028ae289b4196e99aa5ff3da5598c9a6925)
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 efd5b39afb..6f0db3a7f7 100644
--- a/src/backends/x11/meta-seat-x11.c
+++ b/src/backends/x11/meta-seat-x11.c
@@ -1805,6 +1805,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_MASTER &&
+ 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]