[gnome-control-center] mouse: Connect signals with g_signal_connect_object in swapped form



commit 591cd14b577b7f555ab6448e6812b275708ceea5
Author: Robert Ancell <robert ancell canonical com>
Date:   Fri Nov 22 11:25:49 2019 +1300

    mouse: Connect signals with g_signal_connect_object in swapped form

 panels/mouse/cc-mouse-panel.c | 28 ++++++++--------------------
 1 file changed, 8 insertions(+), 20 deletions(-)
---
diff --git a/panels/mouse/cc-mouse-panel.c b/panels/mouse/cc-mouse-panel.c
index df2cd4b7a..a7f018bc4 100644
--- a/panels/mouse/cc-mouse-panel.c
+++ b/panels/mouse/cc-mouse-panel.c
@@ -65,10 +65,6 @@ struct _CcMousePanel
   GSettings         *gsd_mouse_settings;
   GSettings         *touchpad_settings;
 
-  GsdDeviceManager  *device_manager;
-  guint              device_added_id;
-  guint              device_removed_id;
-
   gboolean           have_mouse;
   gboolean           have_touchpad;
   gboolean           have_touchscreen;
@@ -310,9 +306,7 @@ setup_dialog (CcMousePanel *self)
 
 /* Callback issued when a button is clicked on the dialog */
 static void
-device_changed (GsdDeviceManager *device_manager,
-                GsdDevice        *device,
-                CcMousePanel     *self)
+device_changed (CcMousePanel *self)
 {
   self->have_touchpad = touchpad_is_present ();
 
@@ -351,14 +345,6 @@ cc_mouse_panel_dispose (GObject *object)
   g_clear_object (&self->right_gesture);
   g_clear_object (&self->left_gesture);
 
-  if (self->device_manager != NULL) {
-    g_signal_handler_disconnect (self->device_manager, self->device_added_id);
-    self->device_added_id = 0;
-    g_signal_handler_disconnect (self->device_manager, self->device_removed_id);
-    self->device_removed_id = 0;
-    self->device_manager = NULL;
-  }
-
   G_OBJECT_CLASS (cc_mouse_panel_parent_class)->dispose (object);
 }
 
@@ -393,6 +379,8 @@ cc_mouse_panel_constructed (GObject *object)
 static void
 cc_mouse_panel_init (CcMousePanel *self)
 {
+  GsdDeviceManager  *device_manager;
+
   g_resources_register (cc_mouse_get_resource ());
 
   cc_mouse_test_get_type ();
@@ -402,11 +390,11 @@ cc_mouse_panel_init (CcMousePanel *self)
   self->gsd_mouse_settings = g_settings_new ("org.gnome.settings-daemon.peripherals.mouse");
   self->touchpad_settings = g_settings_new ("org.gnome.desktop.peripherals.touchpad");
 
-  self->device_manager = gsd_device_manager_get ();
-  self->device_added_id = g_signal_connect (self->device_manager, "device-added",
-                 G_CALLBACK (device_changed), self);
-  self->device_removed_id = g_signal_connect (self->device_manager, "device-removed",
-             G_CALLBACK (device_changed), self);
+  device_manager = gsd_device_manager_get ();
+  g_signal_connect_object (device_manager, "device-added",
+                           G_CALLBACK (device_changed), self, G_CONNECT_SWAPPED);
+  g_signal_connect_object (device_manager, "device-removed",
+                           G_CALLBACK (device_changed), self, G_CONNECT_SWAPPED);
 
   self->have_mouse = mouse_is_present ();
   self->have_touchpad = touchpad_is_present ();


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