[evolution/gnome-2-30] Bug 624237 - Fails to start when smartcard is inserted



commit a0fa7e70bba7a8b085a236fd12c77d1fedf02aaa
Author: Matthew Barnes <mbarnes redhat com>
Date:   Wed Jul 14 10:38:47 2010 -0400

    Bug 624237 - Fails to start when smartcard is inserted

 smime/gui/certificate-manager.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/smime/gui/certificate-manager.c b/smime/gui/certificate-manager.c
index 505ffaf..d76b743 100644
--- a/smime/gui/certificate-manager.c
+++ b/smime/gui/certificate-manager.c
@@ -973,9 +973,11 @@ load_certs (CertificateManagerData *cfm,
 	CERT_DestroyCertList (certList);
 }
 
-static void
+static gboolean
 populate_ui (CertificateManagerData *cfm)
 {
+	/* This is an idle callback. */
+
 	unload_certs (cfm, E_CERT_USER);
 	load_certs (cfm, E_CERT_USER, add_user_cert);
 
@@ -988,6 +990,8 @@ populate_ui (CertificateManagerData *cfm)
 	/* expand all three trees */
 	gtk_tree_view_expand_all (GTK_TREE_VIEW (cfm->yourcerts_treeview));
 	gtk_tree_view_expand_all (GTK_TREE_VIEW (cfm->contactcerts_treeview));
+
+	return FALSE;
 }
 
 void
@@ -1031,7 +1035,11 @@ certificate_manager_config_init (EShell *shell)
 	initialize_contactcerts_ui(cfm_data);
 	initialize_authoritycerts_ui(cfm_data);
 
-	populate_ui (cfm_data);
+	/* Run this in an idle callback so Evolution has a chance to
+	 * fully initialize itself and start its main loop before we
+	 * load certificates, since doing so may trigger a password
+	 * dialog, and dialogs require a main loop. */
+	g_idle_add ((GSourceFunc) populate_ui, cfm_data);
 
 	widget = e_builder_get_widget (cfm_data->builder, "cert-manager-notebook");
 	g_object_ref (widget);



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