[gnome-control-center] network: Remove shared callback and replace with a method



commit 8a3da8b36d97be77b26e83d482ce0ef9b6b3b0b8
Author: Robert Ancell <robert ancell canonical com>
Date:   Tue Oct 15 10:33:17 2019 +1300

    network: Remove shared callback and replace with a method

 panels/network/wireless-security/eap-method-fast.c | 22 ++++++++++----------
 panels/network/wireless-security/eap-method-leap.c | 14 +++++++------
 panels/network/wireless-security/eap-method-peap.c | 24 ++++++++++------------
 .../network/wireless-security/eap-method-simple.c  | 16 ++++++++-------
 panels/network/wireless-security/eap-method-tls.c  | 24 +++++++++++-----------
 panels/network/wireless-security/eap-method-ttls.c | 24 ++++++++++------------
 .../network/wireless-security/wireless-security.c  |  5 ++---
 .../network/wireless-security/wireless-security.h  |  2 +-
 panels/network/wireless-security/ws-leap.c         | 14 +++++++------
 panels/network/wireless-security/ws-wep-key.c      | 16 ++++++++-------
 panels/network/wireless-security/ws-wpa-psk.c      | 10 ++++++---
 11 files changed, 89 insertions(+), 82 deletions(-)
---
diff --git a/panels/network/wireless-security/eap-method-fast.c 
b/panels/network/wireless-security/eap-method-fast.c
index 4ec3696fd..74666a39f 100644
--- a/panels/network/wireless-security/eap-method-fast.c
+++ b/panels/network/wireless-security/eap-method-fast.c
@@ -220,7 +220,7 @@ inner_auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
                eap_method_add_to_size_group (eap, method->size_group);
        gtk_container_add (GTK_CONTAINER (vbox), eap_widget);
 
-       wireless_security_changed_cb (combo, method->sec_parent);
+       wireless_security_notify_changed (method->sec_parent);
 }
 
 static GtkWidget *
@@ -318,7 +318,13 @@ pac_toggled_cb (GtkWidget *widget, gpointer user_data)
 
        gtk_widget_set_sensitive (provision_combo, enabled);
 
-       wireless_security_changed_cb (widget, method->sec_parent);
+       wireless_security_notify_changed (method->sec_parent);
+}
+
+static void
+changed_cb (EAPMethodFAST *self)
+{
+       wireless_security_notify_changed (self->sec_parent);
 }
 
 EAPMethodFAST *
@@ -376,9 +382,7 @@ eap_method_fast_new (WirelessSecurity *ws_parent,
                }
        }
        gtk_widget_set_sensitive (widget, provisioning_enabled);
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
 
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_fast_pac_provision_checkbutton"));
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), provisioning_enabled);
@@ -387,18 +391,14 @@ eap_method_fast_new (WirelessSecurity *ws_parent,
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_fast_anon_identity_entry"));
        if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
                gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
 
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_fast_pac_file_button"));
        g_assert (widget);
        gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
        gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget),
                                           _("Choose a PAC file"));
-       g_signal_connect (G_OBJECT (widget), "selection-changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "selection-changed", G_CALLBACK (changed_cb), method);
 
        filter = gtk_file_filter_new ();
        gtk_file_filter_add_pattern (filter, "*.pac");
diff --git a/panels/network/wireless-security/eap-method-leap.c 
b/panels/network/wireless-security/eap-method-leap.c
index bc6f56673..91b24d02b 100644
--- a/panels/network/wireless-security/eap-method-leap.c
+++ b/panels/network/wireless-security/eap-method-leap.c
@@ -182,6 +182,12 @@ destroy (EAPMethod *parent)
        g_signal_handlers_disconnect_by_data (method->show_password, method);
 }
 
+static void
+changed_cb (EAPMethodLEAP *self)
+{
+       wireless_security_notify_changed (self->ws_parent);
+}
+
 EAPMethodLEAP *
 eap_method_leap_new (WirelessSecurity *ws_parent,
                      NMConnection *connection,
@@ -222,9 +228,7 @@ eap_method_leap_new (WirelessSecurity *ws_parent,
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_username_entry"));
        g_assert (widget);
        method->username_entry = GTK_ENTRY (widget);
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
 
        if (secrets_only)
                gtk_widget_set_sensitive (widget, FALSE);
@@ -232,9 +236,7 @@ eap_method_leap_new (WirelessSecurity *ws_parent,
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_password_entry"));
        g_assert (widget);
        method->password_entry = GTK_ENTRY (widget);
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */
        if (connection)
diff --git a/panels/network/wireless-security/eap-method-peap.c 
b/panels/network/wireless-security/eap-method-peap.c
index bc0ea7d94..aec1ea821 100644
--- a/panels/network/wireless-security/eap-method-peap.c
+++ b/panels/network/wireless-security/eap-method-peap.c
@@ -223,7 +223,7 @@ inner_auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
                eap_method_add_to_size_group (eap, method->size_group);
        gtk_container_add (GTK_CONTAINER (vbox), eap_widget);
 
-       wireless_security_changed_cb (combo, method->sec_parent);
+       wireless_security_notify_changed (method->sec_parent);
 }
 
 static GtkWidget *
@@ -321,6 +321,12 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
                                                 I_METHOD_COLUMN);
 }
 
+static void
+changed_cb (EAPMethodPEAP *self)
+{
+       wireless_security_notify_changed (self->sec_parent);
+}
+
 EAPMethodPEAP *
 eap_method_peap_new (WirelessSecurity *ws_parent,
                      NMConnection *connection,
@@ -360,9 +366,7 @@ eap_method_peap_new (WirelessSecurity *ws_parent,
        g_signal_connect (G_OBJECT (widget), "toggled",
                          (GCallback) ca_cert_not_required_toggled,
                          parent);
-       g_signal_connect (G_OBJECT (widget), "toggled",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (changed_cb), method);
        widget_ca_not_required_checkbox = widget;
 
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_ca_cert_button"));
@@ -370,9 +374,7 @@ eap_method_peap_new (WirelessSecurity *ws_parent,
        gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
        gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget),
                                           _("Choose a Certificate Authority certificate"));
-       g_signal_connect (G_OBJECT (widget), "selection-changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "selection-changed", G_CALLBACK (changed_cb), method);
        filter = eap_method_default_file_chooser_filter_new (FALSE);
        gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter);
        if (connection && s_8021x) {
@@ -404,16 +406,12 @@ eap_method_peap_new (WirelessSecurity *ws_parent,
                                gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2);
                }
        }
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
 
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_anon_identity_entry"));
        if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
                gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
 
        if (secrets_only) {
                widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, 
"eap_peap_anon_identity_label"));
diff --git a/panels/network/wireless-security/eap-method-simple.c 
b/panels/network/wireless-security/eap-method-simple.c
index 0c40ef115..e58a27a66 100644
--- a/panels/network/wireless-security/eap-method-simple.c
+++ b/panels/network/wireless-security/eap-method-simple.c
@@ -197,7 +197,7 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
 static gboolean
 stuff_changed (EAPMethodSimple *method)
 {
-       wireless_security_changed_cb (NULL, method->ws_parent);
+       wireless_security_notify_changed (method->ws_parent);
        method->idle_func_id = 0;
        return FALSE;
 }
@@ -277,6 +277,12 @@ destroy (EAPMethod *parent)
        nm_clear_g_source (&method->idle_func_id);
 }
 
+static void
+changed_cb (EAPMethodSimple *self)
+{
+       wireless_security_notify_changed (self->ws_parent);
+}
+
 EAPMethodSimple *
 eap_method_simple_new (WirelessSecurity *ws_parent,
                        NMConnection *connection,
@@ -320,9 +326,7 @@ eap_method_simple_new (WirelessSecurity *ws_parent,
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_username_entry"));
        g_assert (widget);
        method->username_entry = GTK_ENTRY (widget);
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
 
        if (method->flags & EAP_METHOD_SIMPLE_FLAG_SECRETS_ONLY)
                gtk_widget_set_sensitive (widget, FALSE);
@@ -330,9 +334,7 @@ eap_method_simple_new (WirelessSecurity *ws_parent,
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_password_entry"));
        g_assert (widget);
        method->password_entry = GTK_ENTRY (widget);
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */
        if (connection)
diff --git a/panels/network/wireless-security/eap-method-tls.c 
b/panels/network/wireless-security/eap-method-tls.c
index 24c45f27f..c8c75666d 100644
--- a/panels/network/wireless-security/eap-method-tls.c
+++ b/panels/network/wireless-security/eap-method-tls.c
@@ -34,6 +34,7 @@
 struct _EAPMethodTLS {
        EAPMethod parent;
 
+       WirelessSecurity *sec_parent;
        gboolean editing_connection;
 };
 
@@ -332,6 +333,12 @@ static void reset_filter (GtkWidget *widget, GParamSpec *spec, gpointer user_dat
 typedef const char * (*PathFunc) (NMSetting8021x *setting);
 typedef NMSetting8021xCKScheme (*SchemeFunc)  (NMSetting8021x *setting);
 
+static void
+changed_cb (EAPMethodTLS *self)
+{
+       wireless_security_notify_changed (self->sec_parent);
+}
+
 static void
 setup_filepicker (GtkFileChooserButton *button,
                   const char *title,
@@ -368,9 +375,7 @@ setup_filepicker (GtkFileChooserButton *button,
                        private_key_picker_helper (parent, filename, FALSE);
        }
 
-       g_signal_connect (button, "selection-changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (button, "selection-changed", G_CALLBACK (changed_cb), parent);
 
        filter = eap_method_default_file_chooser_filter_new (privkey);
        gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (button), filter);
@@ -450,6 +455,7 @@ eap_method_tls_new (WirelessSecurity *ws_parent,
                                        NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD :
                                        NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD;
        method = (EAPMethodTLS *) parent;
+       method->sec_parent = ws_parent;
        method->editing_connection = secrets_only ? FALSE : TRUE;
 
        if (connection)
@@ -460,15 +466,11 @@ eap_method_tls_new (WirelessSecurity *ws_parent,
        g_signal_connect (G_OBJECT (widget), "toggled",
                          (GCallback) ca_cert_not_required_toggled,
                          parent);
-       g_signal_connect (G_OBJECT (widget), "toggled",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (changed_cb), method);
 
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_identity_entry"));
        g_assert (widget);
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
        if (s_8021x && nm_setting_802_1x_get_identity (s_8021x))
                gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_identity (s_8021x));
 
@@ -504,9 +506,7 @@ eap_method_tls_new (WirelessSecurity *ws_parent,
 
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_password_entry"));
        g_assert (widget);
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */
        nma_utils_setup_password_storage (widget, 0, (NMSetting *) s_8021x, parent->password_flags_name,
diff --git a/panels/network/wireless-security/eap-method-ttls.c 
b/panels/network/wireless-security/eap-method-ttls.c
index c93145c0d..195d30110 100644
--- a/panels/network/wireless-security/eap-method-ttls.c
+++ b/panels/network/wireless-security/eap-method-ttls.c
@@ -216,7 +216,7 @@ inner_auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
                eap_method_add_to_size_group (eap, method->size_group);
        gtk_container_add (GTK_CONTAINER (vbox), eap_widget);
 
-       wireless_security_changed_cb (combo, method->sec_parent);
+       wireless_security_notify_changed (method->sec_parent);
 }
 
 static GtkWidget *
@@ -376,6 +376,12 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
                                                 I_METHOD_COLUMN);
 }
 
+static void
+changed_cb (EAPMethodTTLS *self)
+{
+       wireless_security_notify_changed (self->sec_parent);
+}
+
 EAPMethodTTLS *
 eap_method_ttls_new (WirelessSecurity *ws_parent,
                      NMConnection *connection,
@@ -415,9 +421,7 @@ eap_method_ttls_new (WirelessSecurity *ws_parent,
        g_signal_connect (G_OBJECT (widget), "toggled",
                          (GCallback) ca_cert_not_required_toggled,
                          parent);
-       g_signal_connect (G_OBJECT (widget), "toggled",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (changed_cb), method);
        widget_ca_not_required_checkbox = widget;
 
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_ca_cert_button"));
@@ -425,9 +429,7 @@ eap_method_ttls_new (WirelessSecurity *ws_parent,
        gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
        gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget),
                                           _("Choose a Certificate Authority certificate"));
-       g_signal_connect (G_OBJECT (widget), "selection-changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "selection-changed", G_CALLBACK (changed_cb), method);
        filter = eap_method_default_file_chooser_filter_new (FALSE);
        gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter);
        if (connection && s_8021x) {
@@ -444,15 +446,11 @@ eap_method_ttls_new (WirelessSecurity *ws_parent,
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_anon_identity_entry"));
        if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
                gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_domain_match_entry"));
        if (s_8021x && nm_setting_802_1x_get_domain_suffix_match (s_8021x))
                gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_domain_suffix_match (s_8021x));
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         ws_parent);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
 
        widget = inner_auth_combo_init (method, connection, s_8021x, secrets_only);
        inner_auth_combo_changed_cb (widget, (gpointer) method);
diff --git a/panels/network/wireless-security/wireless-security.c 
b/panels/network/wireless-security/wireless-security.c
index 15ceb2b54..a235352c3 100644
--- a/panels/network/wireless-security/wireless-security.c
+++ b/panels/network/wireless-security/wireless-security.c
@@ -86,9 +86,8 @@ wireless_security_set_changed_notify (WirelessSecurity *sec,
 }
 
 void
-wireless_security_changed_cb (GtkWidget *ignored, gpointer user_data)
+wireless_security_notify_changed (WirelessSecurity *sec)
 {
-       WirelessSecurity *sec = WIRELESS_SECURITY (user_data);
        WirelessSecurityPrivate *priv = sec->priv;
 
        if (priv->changed_notify)
@@ -434,7 +433,7 @@ ws_802_1x_auth_combo_changed (GtkWidget *combo,
                        gtk_widget_grab_focus (eap_default_widget);
        }
 
-       wireless_security_changed_cb (combo, WIRELESS_SECURITY (sec));
+       wireless_security_notify_changed (WIRELESS_SECURITY (sec));
 }
 
 void
diff --git a/panels/network/wireless-security/wireless-security.h 
b/panels/network/wireless-security/wireless-security.h
index d093962e9..065a8fc8e 100644
--- a/panels/network/wireless-security/wireless-security.h
+++ b/panels/network/wireless-security/wireless-security.h
@@ -102,7 +102,7 @@ WirelessSecurity *wireless_security_init (gsize obj_size,
                                           WSDestroyFunc destroy,
                                           const char *ui_resource);
 
-void wireless_security_changed_cb (GtkWidget *entry, gpointer user_data);
+void wireless_security_notify_changed (WirelessSecurity *sec);
 
 void wireless_security_clear_ciphers (NMConnection *connection);
 
diff --git a/panels/network/wireless-security/ws-leap.c b/panels/network/wireless-security/ws-leap.c
index b24c2bc5f..95548c6ad 100644
--- a/panels/network/wireless-security/ws-leap.c
+++ b/panels/network/wireless-security/ws-leap.c
@@ -146,6 +146,12 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection)
                                  (HelperSecretFunc) nm_setting_wireless_security_get_leap_password);
 }
 
+static void
+changed_cb (WirelessSecurityLEAP *self)
+{
+       wireless_security_notify_changed ((WirelessSecurity *) self);
+}
+
 WirelessSecurityLEAP *
 ws_leap_new (NMConnection *connection, gboolean secrets_only)
 {
@@ -184,9 +190,7 @@ ws_leap_new (NMConnection *connection, gboolean secrets_only)
 
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_password_entry"));
        g_assert (widget);
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         sec);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */
        nma_utils_setup_password_storage (widget, 0, (NMSetting *) wsec, sec->password_flags_name,
@@ -197,9 +201,7 @@ ws_leap_new (NMConnection *connection, gboolean secrets_only)
 
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_username_entry"));
        g_assert (widget);
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         sec);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec);
        if (wsec)
                gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_wireless_security_get_leap_username 
(wsec));
 
diff --git a/panels/network/wireless-security/ws-wep-key.c b/panels/network/wireless-security/ws-wep-key.c
index 8b3078318..ad0042a3d 100644
--- a/panels/network/wireless-security/ws-wep-key.c
+++ b/panels/network/wireless-security/ws-wep-key.c
@@ -78,7 +78,7 @@ key_index_combo_changed_cb (GtkWidget *combo, WirelessSecurity *parent)
        gtk_entry_set_text (GTK_ENTRY (entry), sec->keys[key_index]);
        sec->cur_index = key_index;
 
-       wireless_security_changed_cb (combo, parent);
+       wireless_security_notify_changed (parent);
 }
 
 static void
@@ -250,6 +250,12 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection)
                gtk_entry_set_text (GTK_ENTRY (widget), sec->keys[sec->cur_index]);
 }
 
+static void
+changed_cb (WirelessSecurityWEPKey *self)
+{
+       wireless_security_notify_changed ((WirelessSecurity *) self);
+}
+
 WirelessSecurityWEPKey *
 ws_wep_key_new (NMConnection *connection,
                 NMWepKeyType type,
@@ -307,9 +313,7 @@ ws_wep_key_new (NMConnection *connection,
                }
        }
 
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         sec);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec);
        g_signal_connect (G_OBJECT (widget), "insert-text",
                          (GCallback) wep_entry_filter_cb,
                          sec);
@@ -348,9 +352,7 @@ ws_wep_key_new (NMConnection *connection,
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_combo"));
        gtk_combo_box_set_active (GTK_COMBO_BOX (widget), is_shared_key ? 1 : 0);
 
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         sec);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec);
 
        /* Don't show auth method for adhoc (which always uses open-system) or
         * when in "simple" mode.
diff --git a/panels/network/wireless-security/ws-wpa-psk.c b/panels/network/wireless-security/ws-wpa-psk.c
index 702ff7d4b..ae3fde94e 100644
--- a/panels/network/wireless-security/ws-wpa-psk.c
+++ b/panels/network/wireless-security/ws-wpa-psk.c
@@ -174,6 +174,12 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection)
                                  (HelperSecretFunc) nm_setting_wireless_security_get_psk);
 }
 
+static void
+changed_cb (WirelessSecurityWPAPSK *self)
+{
+       wireless_security_notify_changed ((WirelessSecurity *) self);
+}
+
 WirelessSecurityWPAPSK *
 ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only)
 {
@@ -199,9 +205,7 @@ ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only)
 
        widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_entry"));
        g_assert (widget);
-       g_signal_connect (G_OBJECT (widget), "changed",
-                         (GCallback) wireless_security_changed_cb,
-                         sec);
+       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec);
        gtk_entry_set_width_chars (GTK_ENTRY (widget), 28);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */


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