aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-07-14 22:38:47 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-07-14 22:41:00 +0800
commita0fa7e70bba7a8b085a236fd12c77d1fedf02aaa (patch)
tree65c2ba4d63f8f30ebc5720e818df5d9c8700dc7f
parent1dc0de3a0306c2fcf05b8070fe5efcf1e16c3b5f (diff)
downloadgsoc2013-evolution-a0fa7e70bba7a8b085a236fd12c77d1fedf02aaa.tar.gz
gsoc2013-evolution-a0fa7e70bba7a8b085a236fd12c77d1fedf02aaa.tar.zst
gsoc2013-evolution-a0fa7e70bba7a8b085a236fd12c77d1fedf02aaa.zip
Bug 624237 - Fails to start when smartcard is inserted
-rw-r--r--smime/gui/certificate-manager.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/smime/gui/certificate-manager.c b/smime/gui/certificate-manager.c
index 505ffaf30f..d76b74320f 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);