diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2016-06-06 14:29:16 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2016-11-04 23:26:41 +0100 |
commit | 8f9259ac06db4c2830fa9e79227bb56abdee86ca (patch) | |
tree | 97122f4ecc898c6dd9e8cdb373a52ceab2e3a5f3 /panels | |
parent | cfec960c56b9aef4377d04d8fdb12eab413266a8 (diff) | |
download | gnome-control-center-8f9259ac06db4c2830fa9e79227bb56abdee86ca.tar.gz |
common: Implement lookup vfunc in GsdDeviceManagerUdev
Diffstat (limited to 'panels')
-rw-r--r-- | panels/common/gsd-device-manager-udev.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/panels/common/gsd-device-manager-udev.c b/panels/common/gsd-device-manager-udev.c index 6289f55df..1522f409d 100644 --- a/panels/common/gsd-device-manager-udev.c +++ b/panels/common/gsd-device-manager-udev.c @@ -24,6 +24,7 @@ #include <string.h> #include <gudev/gudev.h> +#include <gdk/gdkwayland.h> #include "gsd-device-manager-udev.h" struct _GsdUdevDeviceManager @@ -221,6 +222,30 @@ gsd_udev_device_manager_list_devices (GsdDeviceManager *manager, return devices; } +static GsdDevice * +gsd_udev_device_manager_lookup_device (GsdDeviceManager *manager, + GdkDevice *gdk_device) +{ + const gchar *node_path; + GHashTableIter iter; + GsdDevice *device; + + node_path = gdk_wayland_device_get_node_path (gdk_device); + if (!node_path) + return NULL; + + g_hash_table_iter_init (&iter, GSD_UDEV_DEVICE_MANAGER (manager)->devices); + + while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &device)) { + if (g_strcmp0 (node_path, + gsd_device_get_device_file (device)) == 0) { + return device; + } + } + + return NULL; +} + static void gsd_udev_device_manager_class_init (GsdUdevDeviceManagerClass *klass) { @@ -229,4 +254,5 @@ gsd_udev_device_manager_class_init (GsdUdevDeviceManagerClass *klass) object_class->finalize = gsd_udev_device_manager_finalize; manager_class->list_devices = gsd_udev_device_manager_list_devices; + manager_class->lookup_device = gsd_udev_device_manager_lookup_device; } |