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



commit e6128c9ffd386cd5172e9f19e96f4a0e1470af15
Author: Robert Ancell <robert ancell canonical com>
Date:   Fri Nov 22 15:54:43 2019 +1300

    wacom: Connect signals with g_signal_connect_object in swapped form

 panels/wacom/cc-wacom-button-row.c    | 46 +++++++++---------
 panels/wacom/cc-wacom-mapping-panel.c | 36 +++++++--------
 panels/wacom/cc-wacom-nav-button.c    | 54 ++++++----------------
 panels/wacom/cc-wacom-page.c          | 87 +++++++++++++++--------------------
 panels/wacom/cc-wacom-panel.c         | 57 +++++++++--------------
 panels/wacom/cc-wacom-stylus-page.c   | 33 ++++++-------
 6 files changed, 124 insertions(+), 189 deletions(-)
---
diff --git a/panels/wacom/cc-wacom-button-row.c b/panels/wacom/cc-wacom-button-row.c
index d7df80a22..b3ae07eae 100644
--- a/panels/wacom/cc-wacom-button-row.c
+++ b/panels/wacom/cc-wacom-button-row.c
@@ -151,8 +151,7 @@ change_button_action_type (CcWacomButtonRow        *row,
 }
 
 static void
-on_key_shortcut_edited (GsdWacomKeyShortcutButton *shortcut_button,
-                        CcWacomButtonRow    *row)
+on_key_shortcut_edited (CcWacomButtonRow *row)
 {
   g_autofree gchar *custom_key = NULL;
   guint keyval;
@@ -173,23 +172,21 @@ on_key_shortcut_edited (GsdWacomKeyShortcutButton *shortcut_button,
 }
 
 static void
-on_key_shortcut_cleared (GsdWacomKeyShortcutButton *key_shortcut_button,
-                         CcWacomButtonRow    *row)
+on_key_shortcut_cleared (CcWacomButtonRow *row)
 {
   change_button_action_type (row, G_DESKTOP_PAD_BUTTON_ACTION_NONE);
   cc_wacom_button_row_update_action (row, G_DESKTOP_PAD_BUTTON_ACTION_NONE);
 }
 
 static void
-on_row_action_combo_box_changed (GtkComboBox      *combo,
-                                 CcWacomButtonRow *row)
+on_row_action_combo_box_changed (CcWacomButtonRow *row)
 {
   GDesktopPadButtonAction type;
   GtkTreeModel *model;
   GtkListBox *list_box;
   GtkTreeIter iter;
 
-  if (!gtk_combo_box_get_active_iter (combo, &iter))
+  if (!gtk_combo_box_get_active_iter (row->action_combo, &iter))
     return;
 
   /* Select the row where we changed the combo box (if not yet selected) */
@@ -197,23 +194,21 @@ on_row_action_combo_box_changed (GtkComboBox      *combo,
   if (list_box && gtk_list_box_get_selected_row (list_box) != GTK_LIST_BOX_ROW (row))
     gtk_list_box_select_row (list_box, GTK_LIST_BOX_ROW (row));
 
-  model = gtk_combo_box_get_model (combo);
+  model = gtk_combo_box_get_model (row->action_combo);
   gtk_tree_model_get (model, &iter, ACTION_TYPE_COLUMN, &type, -1);
 
   change_button_action_type (row, type);
 }
 
 static gboolean
-on_key_shortcut_button_press_event (GsdWacomKeyShortcutButton  *button,
-                                    GdkEventButton       *event,
-                                    GtkListBoxRow        *row)
+on_key_shortcut_button_press_event (CcWacomButtonRow *row)
 {
   GtkListBox *list_box;
 
   /* Select the row where we pressed the button (if not yet selected) */
   list_box = GTK_LIST_BOX (gtk_widget_get_parent (GTK_WIDGET (row)));
-  if (list_box && gtk_list_box_get_selected_row (list_box) != row)
-    gtk_list_box_select_row (list_box, row);
+  if (list_box && gtk_list_box_get_selected_row (list_box) != GTK_LIST_BOX_ROW (row))
+    gtk_list_box_select_row (list_box, GTK_LIST_BOX_ROW (row));
 
   return FALSE;
 }
@@ -256,23 +251,26 @@ cc_wacom_button_row_new (guint      button,
   gtk_grid_attach (GTK_GRID (grid), combo, 1, 0, 1, 1);
   gtk_widget_show (combo);
   row->action_combo = GTK_COMBO_BOX (combo);
-  g_signal_connect (combo, "changed",
-                    G_CALLBACK (on_row_action_combo_box_changed), row);
+  g_signal_connect_object (combo, "changed",
+                           G_CALLBACK (on_row_action_combo_box_changed), row, G_CONNECT_SWAPPED);
 
   shortcut_button = gsd_wacom_key_shortcut_button_new ();
   g_object_set (shortcut_button, "mode", GSD_WACOM_KEY_SHORTCUT_BUTTON_MODE_ALL, NULL);
   gtk_grid_attach (GTK_GRID (grid), shortcut_button, 2, 0, 1, 1);
   gtk_widget_show (shortcut_button);
   row->key_shortcut_button = GSD_WACOM_KEY_SHORTCUT_BUTTON (shortcut_button);
-  g_signal_connect (shortcut_button, "key-shortcut-cleared",
-                    G_CALLBACK (on_key_shortcut_cleared),
-                    row);
-  g_signal_connect (shortcut_button, "key-shortcut-edited",
-                    G_CALLBACK (on_key_shortcut_edited),
-                    row);
-  g_signal_connect (shortcut_button, "button-press-event",
-                    G_CALLBACK (on_key_shortcut_button_press_event),
-                    row);
+  g_signal_connect_object (shortcut_button, "key-shortcut-cleared",
+                           G_CALLBACK (on_key_shortcut_cleared),
+                           row,
+                           G_CONNECT_SWAPPED);
+  g_signal_connect_object (shortcut_button, "key-shortcut-edited",
+                           G_CALLBACK (on_key_shortcut_edited),
+                           row,
+                           G_CONNECT_SWAPPED);
+  g_signal_connect_object (shortcut_button, "button-press-event",
+                           G_CALLBACK (on_key_shortcut_button_press_event),
+                           row,
+                           G_CONNECT_SWAPPED);
 
   gtk_container_add (GTK_CONTAINER (row), grid);
 
diff --git a/panels/wacom/cc-wacom-mapping-panel.c b/panels/wacom/cc-wacom-mapping-panel.c
index 46d913d1e..2b8b012a8 100644
--- a/panels/wacom/cc-wacom-mapping-panel.c
+++ b/panels/wacom/cc-wacom-mapping-panel.c
@@ -53,9 +53,9 @@ enum {
        MONITOR_NUM_COLUMNS
 };
 
-static void combobox_changed_cb (GtkWidget *widget, CcWacomMappingPanel *self);
-static void checkbutton_toggled_cb (GtkWidget *widget, CcWacomMappingPanel *self);
-static void aspectswitch_toggled_cb (GtkWidget *widget, GParamSpec *pspec, CcWacomMappingPanel *self);
+static void combobox_changed_cb (CcWacomMappingPanel *self);
+static void checkbutton_toggled_cb (CcWacomMappingPanel *self);
+static void aspectswitch_toggled_cb (CcWacomMappingPanel *self);
 
 static void
 set_combobox_sensitive (CcWacomMappingPanel *self,
@@ -189,12 +189,11 @@ cc_wacom_mapping_panel_set_device (CcWacomMappingPanel *self,
 }
 
 static void
-checkbutton_toggled_cb (GtkWidget           *widget,
-                       CcWacomMappingPanel *self)
+checkbutton_toggled_cb (CcWacomMappingPanel *self)
 {
        gboolean active;
 
-       active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+       active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->checkbutton));
        set_combobox_sensitive (self, active);
        if (!active)
                gtk_switch_set_active (GTK_SWITCH(self->aspectswitch), FALSE);
@@ -202,21 +201,18 @@ checkbutton_toggled_cb (GtkWidget           *widget,
 }
 
 static void
-aspectswitch_toggled_cb (GtkWidget           *widget,
-                         GParamSpec          *pspec,
-                        CcWacomMappingPanel *self)
+aspectswitch_toggled_cb (CcWacomMappingPanel *self)
 {
        GSettings *settings;
 
        settings = cc_wacom_device_get_settings (self->device);
        g_settings_set_boolean (settings,
                                "keep-aspect",
-                               gtk_switch_get_active (GTK_SWITCH (widget)));
+                               gtk_switch_get_active (GTK_SWITCH (self->aspectswitch)));
 }
 
 static void
-combobox_changed_cb (GtkWidget           *widget,
-                     CcWacomMappingPanel *self)
+combobox_changed_cb (CcWacomMappingPanel *self)
 {
        update_mapping (self);
 }
@@ -233,8 +229,8 @@ cc_wacom_mapping_panel_init (CcWacomMappingPanel *self)
        if (error)
                g_warning ("Could not get RR screen: %s", error->message);
 
-       g_signal_connect_swapped (self->rr_screen, "changed",
-                                 G_CALLBACK (update_monitor_chooser), self);
+       g_signal_connect_object (self->rr_screen, "changed",
+                                G_CALLBACK (update_monitor_chooser), self, G_CONNECT_SWAPPED);
 
        vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8);
        gtk_container_add (GTK_CONTAINER (self), vbox);
@@ -249,8 +245,8 @@ cc_wacom_mapping_panel_init (CcWacomMappingPanel *self)
        self->label = gtk_label_new (_("Output:"));
        gtk_widget_set_halign (self->label, GTK_ALIGN_END);
        self->combobox = gtk_combo_box_new ();
-       g_signal_connect (G_OBJECT (self->combobox), "changed",
-                             G_CALLBACK (combobox_changed_cb), self);
+       g_signal_connect_object (self->combobox, "changed",
+                                G_CALLBACK (combobox_changed_cb), self, G_CONNECT_SWAPPED);
        renderer = gtk_cell_renderer_text_new ();
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT(self->combobox), renderer, TRUE);
        gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT(self->combobox), renderer, "text", 0);
@@ -263,16 +259,16 @@ cc_wacom_mapping_panel_init (CcWacomMappingPanel *self)
        self->aspectswitch = gtk_switch_new ();
        gtk_widget_set_halign (self->aspectswitch, GTK_ALIGN_START);
        gtk_switch_set_active (GTK_SWITCH (self->aspectswitch), FALSE);
-       g_signal_connect (GTK_SWITCH (self->aspectswitch), "notify::active",
-                      G_CALLBACK (aspectswitch_toggled_cb), self);
+       g_signal_connect_object (self->aspectswitch, "notify::active",
+                                 G_CALLBACK (aspectswitch_toggled_cb), self, G_CONNECT_SWAPPED);
        gtk_grid_attach (GTK_GRID(grid), GTK_WIDGET(self->aspectlabel), 0, 1, 1, 1);
        gtk_grid_attach (GTK_GRID(grid), GTK_WIDGET(self->aspectswitch), 1, 1, 1, 1);
 
        /* Whole-desktop checkbox */
        self->checkbutton = gtk_check_button_new_with_label (_("Map to single monitor"));
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->checkbutton), FALSE);
-       g_signal_connect (G_OBJECT (self->checkbutton), "toggled",
-                      G_CALLBACK (checkbutton_toggled_cb), self);
+       g_signal_connect_object (self->checkbutton, "toggled",
+                                 G_CALLBACK (checkbutton_toggled_cb), self, G_CONNECT_SWAPPED);
 
        gtk_box_pack_start (GTK_BOX(vbox), GTK_WIDGET(self->checkbutton),
                                FALSE, FALSE, 0);
diff --git a/panels/wacom/cc-wacom-nav-button.c b/panels/wacom/cc-wacom-nav-button.c
index 67a614e44..3239f5f1e 100644
--- a/panels/wacom/cc-wacom-nav-button.c
+++ b/panels/wacom/cc-wacom-nav-button.c
@@ -88,25 +88,19 @@ cc_wacom_nav_button_update (CcWacomNavButton *nav)
 }
 
 static void
-pages_changed (GtkNotebook      *notebook,
-              GtkWidget        *child,
-              guint             page_num,
-              CcWacomNavButton *nav)
+pages_changed (CcWacomNavButton *nav)
 {
        cc_wacom_nav_button_update (nav);
 }
 
 static void
-page_switched (GtkNotebook      *notebook,
-              GParamSpec       *pspec,
-              CcWacomNavButton *nav)
+page_switched (CcWacomNavButton *nav)
 {
        cc_wacom_nav_button_update (nav);
 }
 
 static void
-next_clicked (GtkButton        *button,
-             CcWacomNavButton *nav)
+next_clicked (CcWacomNavButton *nav)
 {
        int current_page;
 
@@ -116,8 +110,7 @@ next_clicked (GtkButton        *button,
 }
 
 static void
-prev_clicked (GtkButton        *button,
-             CcWacomNavButton *nav)
+prev_clicked (CcWacomNavButton *nav)
 {
        int current_page;
 
@@ -143,12 +136,12 @@ cc_wacom_nav_button_set_property (GObject      *object,
                }
                g_clear_object (&nav->notebook);
                nav->notebook = g_value_dup_object (value);
-               nav->page_added_id = g_signal_connect (G_OBJECT (nav->notebook), "page-added",
-                                                      G_CALLBACK (pages_changed), nav);
-               nav->page_removed_id = g_signal_connect (G_OBJECT (nav->notebook), "page-removed",
-                                                        G_CALLBACK (pages_changed), nav);
-               nav->page_switched_id = g_signal_connect (G_OBJECT (nav->notebook), "notify::page",
-                                                         G_CALLBACK (page_switched), nav);
+               nav->page_added_id = g_signal_connect_object (nav->notebook, "page-added",
+                                                              G_CALLBACK (pages_changed), nav, 
G_CONNECT_SWAPPED);
+               nav->page_removed_id = g_signal_connect_object (nav->notebook, "page-removed",
+                                                                G_CALLBACK (pages_changed), nav, 
G_CONNECT_SWAPPED);
+               nav->page_switched_id = g_signal_connect_object (nav->notebook, "notify::page",
+                                                                 G_CALLBACK (page_switched), nav, 
G_CONNECT_SWAPPED);
                cc_wacom_nav_button_update (nav);
                break;
        case PROP_IGNORE_FIRST:
@@ -160,31 +153,12 @@ cc_wacom_nav_button_set_property (GObject      *object,
        }
 }
 
-static void
-cc_wacom_nav_button_dispose (GObject *object)
-{
-       CcWacomNavButton *self = CC_WACOM_NAV_BUTTON (object);
-
-       if (self->notebook) {
-               g_signal_handler_disconnect (self->notebook, self->page_added_id);
-               self->page_added_id = 0;
-               g_signal_handler_disconnect (self->notebook, self->page_removed_id);
-               self->page_removed_id = 0;
-               g_signal_handler_disconnect (self->notebook, self->page_switched_id);
-               self->page_switched_id = 0;
-               g_clear_object (&self->notebook);
-       }
-
-       G_OBJECT_CLASS (cc_wacom_nav_button_parent_class)->dispose (object);
-}
-
 static void
 cc_wacom_nav_button_class_init (CcWacomNavButtonClass *klass)
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
        object_class->set_property = cc_wacom_nav_button_set_property;
-       object_class->dispose = cc_wacom_nav_button_dispose;
 
        g_object_class_install_property (object_class, PROP_NOTEBOOK,
                                         g_param_spec_object ("notebook", "notebook", "notebook",
@@ -218,16 +192,16 @@ cc_wacom_nav_button_init (CcWacomNavButton *self)
        self->prev = gtk_button_new ();
        image = gtk_image_new_from_icon_name ("go-previous-symbolic", GTK_ICON_SIZE_MENU);
        gtk_container_add (GTK_CONTAINER (self->prev), image);
-       g_signal_connect (G_OBJECT (self->prev), "clicked",
-                         G_CALLBACK (prev_clicked), self);
+       g_signal_connect_object (G_OBJECT (self->prev), "clicked",
+                                 G_CALLBACK (prev_clicked), self, G_CONNECT_SWAPPED);
        gtk_widget_set_valign (self->prev, GTK_ALIGN_CENTER);
 
        /* Next button */
        self->next = gtk_button_new ();
        image = gtk_image_new_from_icon_name ("go-next-symbolic", GTK_ICON_SIZE_MENU);
        gtk_container_add (GTK_CONTAINER (self->next), image);
-       g_signal_connect (G_OBJECT (self->next), "clicked",
-                         G_CALLBACK (next_clicked), self);
+       g_signal_connect_object (G_OBJECT (self->next), "clicked",
+                                 G_CALLBACK (next_clicked), self, G_CONNECT_SWAPPED);
        gtk_widget_set_valign (self->next, GTK_ALIGN_CENTER);
 
        gtk_box_pack_start (GTK_BOX (box), self->prev,
diff --git a/panels/wacom/cc-wacom-page.c b/panels/wacom/cc-wacom-page.c
index d21d5fe5d..af7a3fafc 100644
--- a/panels/wacom/cc-wacom-page.c
+++ b/panels/wacom/cc-wacom-page.c
@@ -340,8 +340,7 @@ calibrate (CcWacomPage *page)
 }
 
 static void
-calibrate_button_clicked_cb (GtkButton   *button,
-                            CcWacomPage *page)
+calibrate_button_clicked_cb (CcWacomPage *page)
 {
        calibrate (page);
 }
@@ -394,9 +393,7 @@ setup_button_mapping (CcWacomPage *page)
 }
 
 static void
-button_mapping_dialog_closed (GtkDialog   *dialog,
-                             int          response_id,
-                             CcWacomPage *page)
+button_mapping_dialog_closed (CcWacomPage *page)
 {
        gtk_widget_destroy (MWID ("button-mapping-dialog"));
        g_clear_object (&page->mapping_builder);
@@ -427,8 +424,8 @@ show_button_mapping_dialog (CcWacomPage *page)
        toplevel = gtk_widget_get_toplevel (GTK_WIDGET (page));
        gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (toplevel));
        gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-       g_signal_connect (G_OBJECT (dialog), "response",
-                         G_CALLBACK (button_mapping_dialog_closed), page);
+       g_signal_connect_object (dialog, "response",
+                                G_CALLBACK (button_mapping_dialog_closed), page, G_CONNECT_SWAPPED);
 
        gtk_widget_show (dialog);
 
@@ -487,16 +484,13 @@ set_osd_visibility (CcWacomPage *page)
 }
 
 static void
-map_buttons_button_clicked_cb (GtkButton   *button,
-                              CcWacomPage *page)
+map_buttons_button_clicked_cb (CcWacomPage *page)
 {
        set_osd_visibility (page);
 }
 
 static void
-display_mapping_dialog_closed (GtkDialog   *dialog,
-                              int          response_id,
-                              CcWacomPage *page)
+display_mapping_dialog_closed (CcWacomPage *page)
 {
        int layout;
 
@@ -508,8 +502,7 @@ display_mapping_dialog_closed (GtkDialog   *dialog,
 }
 
 static void
-display_mapping_button_clicked_cb (GtkButton   *button,
-                                  CcWacomPage *page)
+display_mapping_button_clicked_cb (CcWacomPage *page)
 {
        g_assert (page->mapping == NULL);
 
@@ -524,22 +517,21 @@ display_mapping_button_clicked_cb (GtkButton   *button,
                                           page->stylus);
        gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (page->dialog))),
                           page->mapping);
-       g_signal_connect (G_OBJECT (page->dialog), "response",
-                         G_CALLBACK (display_mapping_dialog_closed), page);
+       g_signal_connect_object (page->dialog, "response",
+                                G_CALLBACK (display_mapping_dialog_closed), page, G_CONNECT_SWAPPED);
        gtk_widget_show_all (page->dialog);
 
        g_object_add_weak_pointer (G_OBJECT (page->mapping), (gpointer *) &page->dialog);
 }
 
 static void
-tabletmode_changed_cb (GtkComboBox *combo, gpointer user_data)
+tabletmode_changed_cb (CcWacomPage *page)
 {
-       CcWacomPage *page = CC_WACOM_PAGE (user_data);
        GtkListStore *liststore;
        GtkTreeIter iter;
        gint mode;
 
-       if (!gtk_combo_box_get_active_iter (combo, &iter))
+       if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (WID ("combo-tabletmode")), &iter))
                return;
 
        liststore = GTK_LIST_STORE (WID ("liststore-tabletmode"));
@@ -551,12 +543,11 @@ tabletmode_changed_cb (GtkComboBox *combo, gpointer user_data)
 }
 
 static void
-left_handed_toggled_cb (GtkSwitch *sw, GParamSpec *pspec, gpointer *user_data)
+left_handed_toggled_cb (CcWacomPage *page)
 {
-       CcWacomPage *page = CC_WACOM_PAGE (user_data);
        gboolean left_handed;
 
-       left_handed = gtk_switch_get_active (sw);
+       left_handed = gtk_switch_get_active (GTK_SWITCH (WID ("switch-left-handed")));
        g_settings_set_boolean (page->wacom_settings, "left-handed", left_handed);
 }
 
@@ -618,27 +609,23 @@ combobox_text_cellrenderer (GtkComboBox *combo, int name_column)
 }
 
 static gboolean
-display_clicked_cb (GtkButton   *button,
-                   CcWacomPage *page)
+display_clicked_cb (CcWacomPage *page)
 {
        cc_wacom_panel_switch_to_panel (page->panel, "display");
        return TRUE;
 }
 
 static gboolean
-mouse_clicked_cb (GtkButton   *button,
-                 CcWacomPage *page)
+mouse_clicked_cb (CcWacomPage *page)
 {
        cc_wacom_panel_switch_to_panel (page->panel, "mouse");
        return TRUE;
 }
 
 static void
-decouple_display_toggled_cb (GtkSwitch  *sw,
-                            GParamSpec  *pspec,
-                            CcWacomPage *page)
+decouple_display_toggled_cb (CcWacomPage *page)
 {
-       gboolean active = gtk_switch_get_active (sw);
+       gboolean active = gtk_switch_get_active (GTK_SWITCH (WID ("switch-decouple-display")));
 
        update_display_decoupled_sensitivity (page, active);
 
@@ -651,7 +638,7 @@ decouple_display_toggled_cb (GtkSwitch       *sw,
                g_autoptr(GError) error = NULL;
                int i;
 
-               screen = gtk_widget_get_screen (GTK_WIDGET (sw));
+               screen = gtk_widget_get_screen (GTK_WIDGET (WID ("switch-decouple-display")));
                rr_screen = gnome_rr_screen_new (screen, &error);
                if (rr_screen == NULL) {
                        g_warning ("Could not connect to display manager: %s", error->message);
@@ -752,7 +739,6 @@ cc_wacom_page_init (CcWacomPage *page)
        g_autoptr(GError) error = NULL;
        GtkComboBox *combo;
        GtkWidget *box;
-       GtkSwitch *sw;
        char *objects[] = {
                "main-grid",
                "liststore-tabletmode",
@@ -777,34 +763,33 @@ cc_wacom_page_init (CcWacomPage *page)
        gtk_container_add (GTK_CONTAINER (page), box);
        gtk_widget_set_vexpand (GTK_WIDGET (box), TRUE);
 
-       g_signal_connect (WID ("button-calibrate"), "clicked",
-                         G_CALLBACK (calibrate_button_clicked_cb), page);
-       g_signal_connect (WID ("map-buttons-button"), "clicked",
-                         G_CALLBACK (map_buttons_button_clicked_cb), page);
+       g_signal_connect_object (WID ("button-calibrate"), "clicked",
+                                G_CALLBACK (calibrate_button_clicked_cb), page, G_CONNECT_SWAPPED);
+       g_signal_connect_object (WID ("map-buttons-button"), "clicked",
+                                G_CALLBACK (map_buttons_button_clicked_cb), page, G_CONNECT_SWAPPED);
 
        combo = GTK_COMBO_BOX (WID ("combo-tabletmode"));
        combobox_text_cellrenderer (combo, MODELABEL_COLUMN);
-       g_signal_connect (G_OBJECT (combo), "changed",
-                         G_CALLBACK (tabletmode_changed_cb), page);
+       g_signal_connect_object (combo, "changed",
+                                G_CALLBACK (tabletmode_changed_cb), page, G_CONNECT_SWAPPED);
 
-       sw = GTK_SWITCH (WID ("switch-left-handed"));
-       g_signal_connect (G_OBJECT (sw), "notify::active",
-                         G_CALLBACK (left_handed_toggled_cb), page);
+       g_signal_connect_object (WID ("switch-left-handed"), "notify::active",
+                                G_CALLBACK (left_handed_toggled_cb), page, G_CONNECT_SWAPPED);
 
-       g_signal_connect (G_OBJECT (WID ("display-link")), "activate-link",
-                         G_CALLBACK (display_clicked_cb), page);
+       g_signal_connect_object (WID ("display-link"), "activate-link",
+                                G_CALLBACK (display_clicked_cb), page, G_CONNECT_SWAPPED);
        remove_link_padding (WID ("display-link"));
 
-       g_signal_connect (G_OBJECT (WID ("mouse-link")), "activate-link",
-                         G_CALLBACK (mouse_clicked_cb), page);
+       g_signal_connect_object (WID ("mouse-link"), "activate-link",
+                                G_CALLBACK (mouse_clicked_cb), page, G_CONNECT_SWAPPED);
        remove_link_padding (WID ("mouse-link"));
 
-       g_signal_connect (G_OBJECT (WID ("display-mapping-button")), "clicked",
-                         G_CALLBACK (display_mapping_button_clicked_cb), page);
-       g_signal_connect (G_OBJECT (WID ("display-mapping-button-2")), "clicked",
-                         G_CALLBACK (display_mapping_button_clicked_cb), page);
-       g_signal_connect (WID ("switch-decouple-display"), "notify::active",
-                         G_CALLBACK (decouple_display_toggled_cb), page);
+       g_signal_connect_object (WID ("display-mapping-button"), "clicked",
+                                G_CALLBACK (display_mapping_button_clicked_cb), page, G_CONNECT_SWAPPED);
+       g_signal_connect_object (WID ("display-mapping-button-2"), "clicked",
+                                G_CALLBACK (display_mapping_button_clicked_cb), page, G_CONNECT_SWAPPED);
+       g_signal_connect_object (WID ("switch-decouple-display"), "notify::active",
+                                G_CALLBACK (decouple_display_toggled_cb), page, G_CONNECT_SWAPPED);
 
        page->nav = cc_wacom_nav_button_new ();
         gtk_widget_set_halign (page->nav, GTK_ALIGN_END);
diff --git a/panels/wacom/cc-wacom-panel.c b/panels/wacom/cc-wacom-panel.c
index 4c9208fc3..5b6584de8 100644
--- a/panels/wacom/cc-wacom-panel.c
+++ b/panels/wacom/cc-wacom-panel.c
@@ -56,9 +56,6 @@ struct _CcWacomPanel
        GHashTable       *devices; /* key=GsdDevice, value=CcWacomDevice */
        GHashTable       *pages; /* key=device name, value=GtkWidget */
        GHashTable       *stylus_pages; /* key=CcWacomTool, value=GtkWidget */
-       GsdDeviceManager *manager;
-       guint             device_added_id;
-       guint             device_removed_id;
 
        CcTabletToolMap  *tablet_tool_map;
 
@@ -244,13 +241,6 @@ cc_wacom_panel_dispose (GObject *object)
 
        g_clear_object (&self->builder);
 
-       if (self->manager)
-       {
-               g_signal_handler_disconnect (self->manager, self->device_added_id);
-               g_signal_handler_disconnect (self->manager, self->device_removed_id);
-               self->manager = NULL;
-       }
-
        g_clear_pointer (&self->devices, g_hash_table_unref);
        g_clear_object (&self->proxy);
        g_clear_pointer (&self->pages, g_hash_table_unref);
@@ -408,9 +398,8 @@ update_current_tool (CcWacomPanel  *panel,
 }
 
 static gboolean
-on_shell_event_cb (GtkWidget    *wigdet,
-                  GdkEvent     *event,
-                  CcWacomPanel *panel)
+on_shell_event_cb (CcWacomPanel *panel,
+                  GdkEvent     *event)
 {
        if (event->type == GDK_MOTION_NOTIFY) {
                update_current_tool (panel,
@@ -455,7 +444,7 @@ cc_wacom_panel_constructed (GObject *object)
                                G_BINDING_BIDIRECTIONAL);
 
        g_signal_connect_object (shell, "event",
-                                G_CALLBACK (on_shell_event_cb), self, 0);
+                                G_CALLBACK (on_shell_event_cb), self, G_CONNECT_SWAPPED);
 
        self->test_button = button;
        update_test_button (self);
@@ -635,9 +624,8 @@ add_known_device (CcWacomPanel *self,
 }
 
 static void
-device_removed_cb (GsdDeviceManager *manager,
-                  GsdDevice        *gsd_device,
-                  CcWacomPanel     *self)
+device_removed_cb (CcWacomPanel     *self,
+                  GsdDevice        *gsd_device)
 {
        g_autoptr(CcWacomDevice) device = NULL;
 
@@ -651,17 +639,15 @@ device_removed_cb (GsdDeviceManager *manager,
 }
 
 static void
-device_added_cb (GsdDeviceManager *manager,
-                GsdDevice        *device,
-                CcWacomPanel     *self)
+device_added_cb (CcWacomPanel *self,
+                GsdDevice    *device)
 {
        add_known_device (self, device);
        update_current_page (self, NULL);
 }
 
 static gboolean
-link_activated (GtkLinkButton *button,
-               CcWacomPanel  *self)
+link_activated (CcWacomPanel  *self)
 {
        cc_wacom_panel_switch_to_panel (self, "bluetooth");
        return TRUE;
@@ -710,13 +696,11 @@ enbiggen_label (GtkLabel *label)
 }
 
 static void
-on_stack_visible_child_notify_cb (GObject      *object,
-                                 GParamSpec   *pspec,
-                                 CcWacomPanel *panel)
+on_stack_visible_child_notify_cb (CcWacomPanel *panel)
 {
        GtkWidget *child;
 
-       child = gtk_stack_get_visible_child (GTK_STACK (object));
+       child = gtk_stack_get_visible_child (GTK_STACK (panel->stack));
 
        if (child == panel->stylus_notebook) {
                gtk_container_child_set (GTK_CONTAINER (panel->stack),
@@ -730,6 +714,7 @@ static void
 cc_wacom_panel_init (CcWacomPanel *self)
 {
        GtkWidget *widget;
+       GsdDeviceManager *device_manager;
        g_autoptr(GList) devices = NULL;
        GList *l;
        g_autoptr(GError) error = NULL;
@@ -777,8 +762,8 @@ cc_wacom_panel_init (CcWacomPanel *self)
                      "margin-bottom", 30,
                      NULL);
 
-       g_signal_connect (self->stack, "notify::visible-child",
-                         G_CALLBACK (on_stack_visible_child_notify_cb), self);
+       g_signal_connect_object (self->stack, "notify::visible-child",
+                                G_CALLBACK (on_stack_visible_child_notify_cb), self, G_CONNECT_SWAPPED);
 
        self->switcher = gtk_stack_switcher_new ();
        gtk_stack_switcher_set_stack (GTK_STACK_SWITCHER (self->switcher),
@@ -818,20 +803,20 @@ cc_wacom_panel_init (CcWacomPanel *self)
        enbiggen_label (GTK_LABEL (WID ("advice-label1")));
        gtk_notebook_append_page (GTK_NOTEBOOK (self->tablet_notebook), widget, NULL);
 
-       g_signal_connect (G_OBJECT (WID ("linkbutton")), "activate-link",
-                         G_CALLBACK (link_activated), self);
+       g_signal_connect_object (WID ("linkbutton"), "activate-link",
+                                G_CALLBACK (link_activated), self, G_CONNECT_SWAPPED);
 
        self->devices = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_object_unref);
        self->pages = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
        self->stylus_pages = g_hash_table_new (NULL, NULL);
 
-       self->manager = gsd_device_manager_get ();
-       self->device_added_id = g_signal_connect (G_OBJECT (self->manager), "device-added",
-                                                 G_CALLBACK (device_added_cb), self);
-       self->device_removed_id = g_signal_connect (G_OBJECT (self->manager), "device-removed",
-                                                   G_CALLBACK (device_removed_cb), self);
+       device_manager = gsd_device_manager_get ();
+       g_signal_connect_object (device_manager, "device-added",
+                                G_CALLBACK (device_added_cb), self, G_CONNECT_SWAPPED);
+       g_signal_connect_object (device_manager, "device-removed",
+                                G_CALLBACK (device_removed_cb), self, G_CONNECT_SWAPPED);
 
-       devices = gsd_device_manager_list_devices (self->manager,
+       devices = gsd_device_manager_list_devices (device_manager,
                                                   GSD_DEVICE_TYPE_TABLET);
        for (l = devices; l ; l = l->next)
                add_known_device (self, l->data);
diff --git a/panels/wacom/cc-wacom-stylus-page.c b/panels/wacom/cc-wacom-stylus-page.c
index 835a9440a..2fc6c5adb 100644
--- a/panels/wacom/cc-wacom-stylus-page.c
+++ b/panels/wacom/cc-wacom-stylus-page.c
@@ -83,17 +83,15 @@ set_pressurecurve (GtkRange *range, GSettings *settings, const gchar *key)
 }
 
 static void
-tip_feel_value_changed_cb (GtkRange *range, gpointer user_data)
+tip_feel_value_changed_cb (CcWacomStylusPage *page)
 {
-       CcWacomStylusPage *page = CC_WACOM_STYLUS_PAGE(user_data);
-       set_pressurecurve (range, page->stylus_settings, "pressure-curve");
+       set_pressurecurve (GTK_RANGE (WID ("scale-tip-feel")), page->stylus_settings, "pressure-curve");
 }
 
 static void
-eraser_feel_value_changed_cb (GtkRange *range, gpointer user_data)
+eraser_feel_value_changed_cb (CcWacomStylusPage *page)
 {
-       CcWacomStylusPage *page = CC_WACOM_STYLUS_PAGE(user_data);
-       set_pressurecurve (range, page->stylus_settings, "eraser-pressure-curve");
+       set_pressurecurve (GTK_RANGE (WID ("scale-eraser-feel")), page->stylus_settings, 
"eraser-pressure-curve");
 }
 
 static void
@@ -155,9 +153,8 @@ set_button_mapping_from_gsettings (GtkComboBox *combo, GSettings* settings, cons
 }
 
 static void
-button_changed_cb (GtkComboBox *combo, gpointer user_data)
+button_changed_cb (CcWacomStylusPage *page)
 {
-       CcWacomStylusPage       *page = CC_WACOM_STYLUS_PAGE(user_data);
        GtkTreeIter             iter;
        GtkListStore            *liststore;
        gint                    mapping_b2,
@@ -299,25 +296,25 @@ cc_wacom_stylus_page_init (CcWacomStylusPage *page)
        add_marks (GTK_SCALE (WID ("scale-tip-feel")));
        add_marks (GTK_SCALE (WID ("scale-eraser-feel")));
 
-       g_signal_connect (WID ("scale-tip-feel"), "value-changed",
-                         G_CALLBACK (tip_feel_value_changed_cb), page);
-       g_signal_connect (WID ("scale-eraser-feel"), "value-changed",
-                         G_CALLBACK (eraser_feel_value_changed_cb), page);
+       g_signal_connect_object (WID ("scale-tip-feel"), "value-changed",
+                                 G_CALLBACK (tip_feel_value_changed_cb), page, G_CONNECT_SWAPPED);
+       g_signal_connect_object (WID ("scale-eraser-feel"), "value-changed",
+                                 G_CALLBACK (eraser_feel_value_changed_cb), page, G_CONNECT_SWAPPED);
 
        combo = GTK_COMBO_BOX (WID ("combo-topbutton"));
        combobox_text_cellrenderer (combo, BUTTONNAME_COLUMN);
-       g_signal_connect (G_OBJECT (combo), "changed",
-                         G_CALLBACK (button_changed_cb), page);
+       g_signal_connect_object (combo, "changed",
+                                 G_CALLBACK (button_changed_cb), page, G_CONNECT_SWAPPED);
 
        combo = GTK_COMBO_BOX (WID ("combo-bottombutton"));
        combobox_text_cellrenderer (combo, BUTTONNAME_COLUMN);
-       g_signal_connect (G_OBJECT (combo), "changed",
-                         G_CALLBACK (button_changed_cb), page);
+       g_signal_connect_object (combo, "changed",
+                                 G_CALLBACK (button_changed_cb), page, G_CONNECT_SWAPPED);
 
        combo = GTK_COMBO_BOX (WID ("combo-thirdbutton"));
        combobox_text_cellrenderer (combo, BUTTONNAME_COLUMN);
-       g_signal_connect (G_OBJECT (combo), "changed",
-                         G_CALLBACK (button_changed_cb), page);
+       g_signal_connect_object (G_OBJECT (combo), "changed",
+                                 G_CALLBACK (button_changed_cb), page, G_CONNECT_SWAPPED);
 
        page->nav = cc_wacom_nav_button_new ();
         gtk_widget_set_halign (page->nav, GTK_ALIGN_END);


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