[gnome-control-center/wip/garnacho/wayland-tablet: 9/31] common: Implement new vfuncs in GsdDeviceManagerX11



commit 44e79be3f50a79fa6901e5d63fdbaf892954329d
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon Jun 6 14:07:31 2016 +0200

    common: Implement new vfuncs in GsdDeviceManagerX11

 panels/common/gsd-device-manager-x11.c |   45 ++++++++++++++-----------------
 panels/common/gsd-device-manager-x11.h |    6 ----
 2 files changed, 20 insertions(+), 31 deletions(-)
---
diff --git a/panels/common/gsd-device-manager-x11.c b/panels/common/gsd-device-manager-x11.c
index 14f6e72..e654054 100644
--- a/panels/common/gsd-device-manager-x11.c
+++ b/panels/common/gsd-device-manager-x11.c
@@ -40,6 +40,11 @@ struct _GsdX11DeviceManagerClass
        GsdDeviceManagerClass parent_class;
 };
 
+GList     * gsd_x11_device_manager_get_gdk_devices   (GsdDeviceManager *manager,
+                                                      GsdDevice         *device);
+GsdDevice  * gsd_x11_device_manager_lookup_gdk_device (GsdDeviceManager *manager,
+                                                      GdkDevice        *gdk_device);
+
 G_DEFINE_TYPE (GsdX11DeviceManager, gsd_x11_device_manager, GSD_TYPE_DEVICE_MANAGER)
 
 static GsdDeviceType
@@ -215,51 +220,41 @@ gsd_x11_device_manager_class_init (GsdX11DeviceManagerClass *klass)
        GsdDeviceManagerClass *manager_class = GSD_DEVICE_MANAGER_CLASS (klass);
 
        manager_class->list_devices = gsd_x11_device_manager_list_devices;
+       manager_class->lookup_device = gsd_x11_device_manager_get_gdk_devices;
+       manager_class->inverse_lookup = gsd_x11_device_manager_lookup_gdk_device;
 }
 
-GdkDevice **
-gsd_x11_device_manager_get_gdk_devices (GsdX11DeviceManager *manager,
-                                       GsdDevice           *device,
-                                       guint               *n_gdk_devices)
+GList *
+gsd_x11_device_manager_get_gdk_devices (GsdDeviceManager *manager,
+                                       GsdDevice        *device)
 {
+       GsdX11DeviceManager *manager_x11 = GSD_X11_DEVICE_MANAGER (manager);
        const gchar *device_node;
-       GPtrArray *gdk_devices;
        GdkDevice *gdk_device;
        GHashTableIter iter;
+       GList *l = NULL;
 
-       if (n_gdk_devices)
-               *n_gdk_devices = 0;
-
-       g_return_val_if_fail (GSD_IS_X11_DEVICE_MANAGER (manager), NULL);
-       g_return_val_if_fail (GSD_IS_DEVICE (device), NULL);
-
-       gdk_devices = g_ptr_array_new ();
-       g_hash_table_iter_init (&iter, manager->gdk_devices);
+       g_hash_table_iter_init (&iter, manager_x11->gdk_devices);
 
        while (g_hash_table_iter_next (&iter, (gpointer *) &gdk_device, (gpointer *) &device_node)) {
                if (g_strcmp0 (gsd_device_get_device_file (device), device_node) == 0)
-                       g_ptr_array_add (gdk_devices, gdk_device);
+                       l = g_list_prepend (l, gdk_device);
        }
 
-       if (n_gdk_devices)
-               *n_gdk_devices = gdk_devices->len;
-
-       return (GdkDevice **) g_ptr_array_free (gdk_devices, FALSE);
+       return l;
 }
 
 GsdDevice *
-gsd_x11_device_manager_lookup_gdk_device (GsdX11DeviceManager *manager,
-                                         GdkDevice           *gdk_device)
+gsd_x11_device_manager_lookup_gdk_device (GsdDeviceManager *manager,
+                                         GdkDevice        *gdk_device)
 {
+       GsdX11DeviceManager *manager_x11 = GSD_X11_DEVICE_MANAGER (manager);
        const gchar *device_node;
 
-       g_return_val_if_fail (GSD_IS_X11_DEVICE_MANAGER (manager), NULL);
-       g_return_val_if_fail (GDK_IS_DEVICE (gdk_device), NULL);
-
-       device_node = g_hash_table_lookup (manager->gdk_devices, gdk_device);
+       device_node = g_hash_table_lookup (manager_x11->gdk_devices, gdk_device);
 
        if (!device_node)
                return NULL;
 
-       return g_hash_table_lookup (manager->devices, device_node);
+       return g_hash_table_lookup (manager_x11->devices, device_node);
 }
diff --git a/panels/common/gsd-device-manager-x11.h b/panels/common/gsd-device-manager-x11.h
index 876bf50..a5ea724 100644
--- a/panels/common/gsd-device-manager-x11.h
+++ b/panels/common/gsd-device-manager-x11.h
@@ -39,12 +39,6 @@ typedef struct _GsdX11DeviceManagerClass GsdX11DeviceManagerClass;
 
 GType          gsd_x11_device_manager_get_type         (void) G_GNUC_CONST;
 
-GdkDevice   ** gsd_x11_device_manager_get_gdk_devices   (GsdX11DeviceManager *manager,
-                                                        GsdDevice           *device,
-                                                        guint               *n_gdk_devices);
-GsdDevice    * gsd_x11_device_manager_lookup_gdk_device (GsdX11DeviceManager *manager,
-                                                        GdkDevice           *gdk_device);
-
 G_END_DECLS
 
 #endif /* __GSD_X11_DEVICE_MANAGER_H__ */


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