diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2019-10-09 16:03:24 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2020-01-30 18:11:23 +0100 |
commit | e9fbbd58535576d130c3dd2cffa3c6c57c6c22c3 (patch) | |
tree | 4735ac3ebb6e31c28ce51991a2cb1ef1d5edba49 /src/backends/meta-idle-monitor.c | |
parent | d3160d095d2ef7c69f3ad02e71995280e87fdd53 (diff) | |
download | mutter-e9fbbd58535576d130c3dd2cffa3c6c57c6c22c3.tar.gz |
backends: Do not use device IDs on idle monitors
Device IDs are somewhat x11 specific, seems better to avoid those
on public API. We can rely everywhere on ClutterInputDevice, so use
it instead.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/852
Diffstat (limited to 'src/backends/meta-idle-monitor.c')
-rw-r--r-- | src/backends/meta-idle-monitor.c | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/backends/meta-idle-monitor.c b/src/backends/meta-idle-monitor.c index 4304db142..08835a8f4 100644 --- a/src/backends/meta-idle-monitor.c +++ b/src/backends/meta-idle-monitor.c @@ -46,7 +46,7 @@ G_STATIC_ASSERT(sizeof(unsigned long) == sizeof(gpointer)); enum { PROP_0, - PROP_DEVICE_ID, + PROP_DEVICE, PROP_LAST, }; @@ -99,8 +99,8 @@ meta_idle_monitor_get_property (GObject *object, switch (prop_id) { - case PROP_DEVICE_ID: - g_value_set_int (value, monitor->device_id); + case PROP_DEVICE: + g_value_set_object (value, monitor->device); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -117,8 +117,8 @@ meta_idle_monitor_set_property (GObject *object, MetaIdleMonitor *monitor = META_IDLE_MONITOR (object); switch (prop_id) { - case PROP_DEVICE_ID: - monitor->device_id = g_value_get_int (value); + case PROP_DEVICE: + monitor->device = g_value_get_object (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -136,17 +136,18 @@ meta_idle_monitor_class_init (MetaIdleMonitorClass *klass) object_class->set_property = meta_idle_monitor_set_property; /** - * MetaIdleMonitor:device_id: + * MetaIdleMonitor:device: * * The device to listen to idletime on. */ - obj_props[PROP_DEVICE_ID] = - g_param_spec_int ("device-id", - "Device ID", - "The device to listen to idletime on", - 0, 255, 0, - G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); - g_object_class_install_property (object_class, PROP_DEVICE_ID, obj_props[PROP_DEVICE_ID]); + obj_props[PROP_DEVICE] = + g_param_spec_object ("device", + "Device", + "The device to listen to idletime on", + CLUTTER_TYPE_INPUT_DEVICE, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); + + g_object_class_install_property (object_class, PROP_DEVICE, obj_props[PROP_DEVICE]); } static void @@ -276,22 +277,25 @@ MetaIdleMonitor * meta_idle_monitor_get_core (void) { MetaBackend *backend = meta_get_backend (); - return meta_backend_get_idle_monitor (backend, 0); + ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend); + ClutterSeat *seat = clutter_backend_get_default_seat (clutter_backend); + + return meta_backend_get_idle_monitor (backend, clutter_seat_get_pointer (seat)); } /** * meta_idle_monitor_get_for_device: - * @device_id: the device to get the idle time for. + * @device: the device to get the idle time for. * * Returns: (transfer none): a new #MetaIdleMonitor that tracks the * device-specific idletime for @device. To track server-global idletime * for all devices, use meta_idle_monitor_get_core(). */ MetaIdleMonitor * -meta_idle_monitor_get_for_device (int device_id) +meta_idle_monitor_get_for_device (ClutterInputDevice *device) { MetaBackend *backend = meta_get_backend (); - return meta_backend_get_idle_monitor (backend, device_id); + return meta_backend_get_idle_monitor (backend, device); } static guint32 |