[mutter/wip/carlosg/there-can-be-only-one: 150/151] backends/x11: Update MetaBackend on ClutterEvent processing




commit f97f83c3b4ee89ab3af8ed02edc5dc01d7ddbeae
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sat Feb 5 13:12:48 2022 +0100

    backends/x11: Update MetaBackend on ClutterEvent processing
    
    This should fix wonky handling of last used device and pointer
    visibility on X11. At least does on --nested under presence of
    touchscreen/tablet.

 src/backends/x11/meta-clutter-backend-x11.c | 11 +++++++++++
 src/backends/x11/meta-clutter-backend-x11.h |  3 +++
 src/backends/x11/meta-event-x11.c           |  1 +
 3 files changed, 15 insertions(+)
---
diff --git a/src/backends/x11/meta-clutter-backend-x11.c b/src/backends/x11/meta-clutter-backend-x11.c
index 9ee2be164a..2ae9c14ba0 100644
--- a/src/backends/x11/meta-clutter-backend-x11.c
+++ b/src/backends/x11/meta-clutter-backend-x11.c
@@ -536,3 +536,14 @@ meta_clutter_x11_get_use_stereo_stage (void)
 {
   return clutter_enable_stereo;
 }
+
+void
+meta_clutter_backend_x11_update_backend_from_event (MetaClutterBackendX11 *clutter_backend_x11,
+                                                    ClutterEvent          *event)
+{
+  MetaClutterBackendX11Private *priv;
+
+  priv = meta_clutter_backend_x11_get_instance_private (clutter_backend_x11);
+
+  meta_backend_update_from_event (priv->backend, event);
+}
diff --git a/src/backends/x11/meta-clutter-backend-x11.h b/src/backends/x11/meta-clutter-backend-x11.h
index 187db4b9a6..a4128281e0 100644
--- a/src/backends/x11/meta-clutter-backend-x11.h
+++ b/src/backends/x11/meta-clutter-backend-x11.h
@@ -88,4 +88,7 @@ void meta_clutter_backend_x11_remove_filter (MetaClutterBackendX11 *clutter_back
 void meta_clutter_x11_set_use_stereo_stage (gboolean use_stereo);
 gboolean meta_clutter_x11_get_use_stereo_stage (void);
 
+void meta_clutter_backend_x11_update_backend_from_event (MetaClutterBackendX11 *clutter_backend_x11,
+                                                         ClutterEvent          *event);
+
 #endif /* META_CLUTTER_BACKEND_X11_H */
diff --git a/src/backends/x11/meta-event-x11.c b/src/backends/x11/meta-event-x11.c
index e6483a8156..3ed426e58f 100644
--- a/src/backends/x11/meta-event-x11.c
+++ b/src/backends/x11/meta-event-x11.c
@@ -103,6 +103,7 @@ meta_x11_handle_event (XEvent *xevent)
     {
       /* forward the event into clutter for emission etc. */
       clutter_do_event (event);
+      meta_clutter_backend_x11_update_backend_from_event (backend_x11, event);
       clutter_event_free (event);
       --spin;
     }


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