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);
openSUSE Build Service is sponsored by