File nma-nag-segfault.patch of Package NetworkManager-gnome
commit a629abc3d15d419ea271dd002489b359ec032ff8
Author: Tambet Ingo <tambet@gmail.com>
Date: Fri Jan 30 10:35:34 2009 +0200
Fix a segfault on wireless nag dialog.
diff --git a/src/wireless-security/eap-method-peap.c b/src/wireless-security/eap-method-peap.c
index 99cf74e..4918587 100644
--- a/src/wireless-security/eap-method-peap.c
+++ b/src/wireless-security/eap-method-peap.c
@@ -171,15 +171,6 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
eap_method_unref (eap);
}
-static gboolean
-nag_dialog_destroy (gpointer user_data)
-{
- GtkWidget *nag_dialog = GTK_WIDGET (user_data);
-
- gtk_widget_destroy (nag_dialog);
- return FALSE;
-}
-
static void
nag_dialog_response_cb (GtkDialog *nag_dialog,
gint response,
@@ -199,7 +190,6 @@ nag_dialog_response_cb (GtkDialog *nag_dialog,
out:
gtk_widget_hide (GTK_WIDGET (nag_dialog));
- g_idle_add (nag_dialog_destroy, nag_dialog);
}
static GtkWidget *
@@ -240,6 +230,9 @@ nag_user (EAPMethod *parent)
gtk_label_set_markup (GTK_LABEL (widget), text);
g_free (text);
+ widget = glade_xml_get_widget (method->nag_dialog_xml, "ignore_checkbox");
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
+
widget = glade_xml_get_widget (method->nag_dialog_xml, "ignore_button");
gtk_button_set_label (GTK_BUTTON (widget), _("Ignore"));
g_assert (widget);
diff --git a/src/wireless-security/eap-method-tls.c b/src/wireless-security/eap-method-tls.c
index d136b46..e3bf3c8 100644
--- a/src/wireless-security/eap-method-tls.c
+++ b/src/wireless-security/eap-method-tls.c
@@ -236,15 +236,6 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
}
}
-static gboolean
-nag_dialog_destroy (gpointer user_data)
-{
- GtkWidget *nag_dialog = GTK_WIDGET (user_data);
-
- gtk_widget_destroy (nag_dialog);
- return FALSE;
-}
-
static void
nag_dialog_response_cb (GtkDialog *nag_dialog,
gint response,
@@ -264,7 +255,6 @@ nag_dialog_response_cb (GtkDialog *nag_dialog,
out:
gtk_widget_hide (GTK_WIDGET (nag_dialog));
- g_idle_add (nag_dialog_destroy, nag_dialog);
}
static GtkWidget *
@@ -305,6 +295,9 @@ nag_user (EAPMethod *parent)
gtk_label_set_markup (GTK_LABEL (widget), text);
g_free (text);
+ widget = glade_xml_get_widget (method->nag_dialog_xml, "ignore_checkbox");
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
+
widget = glade_xml_get_widget (method->nag_dialog_xml, "ignore_button");
gtk_button_set_label (GTK_BUTTON (widget), _("Ignore"));
g_assert (widget);
diff --git a/src/wireless-security/eap-method-ttls.c b/src/wireless-security/eap-method-ttls.c
index 0524e4f..b393be3 100644
--- a/src/wireless-security/eap-method-ttls.c
+++ b/src/wireless-security/eap-method-ttls.c
@@ -158,15 +158,6 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
eap_method_unref (eap);
}
-static gboolean
-nag_dialog_destroy (gpointer user_data)
-{
- GtkWidget *nag_dialog = GTK_WIDGET (user_data);
-
- gtk_widget_destroy (nag_dialog);
- return FALSE;
-}
-
static void
nag_dialog_response_cb (GtkDialog *nag_dialog,
gint response,
@@ -186,7 +177,6 @@ nag_dialog_response_cb (GtkDialog *nag_dialog,
out:
gtk_widget_hide (GTK_WIDGET (nag_dialog));
- g_idle_add (nag_dialog_destroy, nag_dialog);
}
static GtkWidget *
@@ -228,6 +218,9 @@ nag_user (EAPMethod *parent)
gtk_label_set_markup (GTK_LABEL (widget), text);
g_free (text);
+ widget = glade_xml_get_widget (method->nag_dialog_xml, "ignore_checkbox");
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
+
widget = glade_xml_get_widget (method->nag_dialog_xml, "ignore_button");
gtk_button_set_label (GTK_BUTTON (widget), _("Ignore"));
g_assert (widget);