[mutter/wip/carlosg/there-can-be-only-one: 16/23] backends: Check for updates in the last used device after dispatching events
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/there-can-be-only-one: 16/23] backends: Check for updates in the last used device after dispatching events
- Date: Mon, 7 Feb 2022 17:19:43 +0000 (UTC)
commit 26b82a409b7af85e75b52a72ad7e611db3630a71
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Jan 13 14:02:26 2022 +0100
backends: Check for updates in the last used device after dispatching events
Instead of relying in the device being updated from different parts of our
machinery for different backends, hook this up to our own event dispatching.
This will allow dropping all other places where this is done.
src/backends/meta-backend.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
---
diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c
index 1853d07147..a5230e359e 100644
--- a/src/backends/meta-backend.c
+++ b/src/backends/meta-backend.c
@@ -998,6 +998,22 @@ system_bus_gotten_cb (GObject *object,
NULL);
}
+static void
+update_last_device_from_event (MetaBackend *backend,
+ ClutterEvent *event)
+{
+ ClutterInputDevice *source;
+
+ /* Handled elsewhere */
+ if (event->type == CLUTTER_DEVICE_ADDED ||
+ event->type == CLUTTER_DEVICE_REMOVED)
+ return;
+
+ source = clutter_event_get_source_device (event);
+ if (source)
+ meta_backend_update_last_device (backend, source);
+}
+
/* Mutter is responsible for pulling events off the X queue, so Clutter
* doesn't need (and shouldn't) run its normal event source which polls
* the X fd, but we do have to deal with dispatching events that accumulate
@@ -1037,6 +1053,7 @@ clutter_source_dispatch (GSource *source,
event->any.stage =
CLUTTER_STAGE (meta_backend_get_stage (backend_source->backend));
clutter_do_event (event);
+ update_last_device_from_event (backend_source->backend, event);
clutter_event_free (event);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]