[evolution] Bug #706901 - Large default book slows down composer open



commit 9ad5ddf9cc3e86e59662925d3dcd51ab35c0131c
Author: Milan Crha <mcrha redhat com>
Date:   Thu Aug 29 18:10:23 2013 +0200

    Bug #706901 - Large default book slows down composer open

 e-util/e-name-selector-dialog.c |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)
---
diff --git a/e-util/e-name-selector-dialog.c b/e-util/e-name-selector-dialog.c
index e40c673..d986f11 100644
--- a/e-util/e-name-selector-dialog.c
+++ b/e-util/e-name-selector-dialog.c
@@ -66,6 +66,7 @@ struct _ENameSelectorDialogPrivate {
        GtkTreeModelSort *contact_sort;
        GCancellable *cancellable;
 
+       GtkWidget *client_combo;
        GtkTreeView *contact_view;
        GtkLabel *status_label;
        GtkGrid *destination_vgrid;
@@ -147,6 +148,17 @@ name_selector_dialog_populate_categories (ENameSelectorDialog *name_selector_dia
 }
 
 static void
+name_selector_dialog_realize_cb (ENameSelectorDialog *name_selector_dialog,
+                                gpointer user_data)
+{
+       g_return_if_fail (E_IS_NAME_SELECTOR_DIALOG (name_selector_dialog));
+
+       source_changed (
+               name_selector_dialog,
+               E_CLIENT_COMBO_BOX (name_selector_dialog->priv->client_combo));
+}
+
+static void
 name_selector_dialog_set_client_cache (ENameSelectorDialog *name_selector_dialog,
                                        EClientCache *client_cache)
 {
@@ -515,14 +527,11 @@ name_selector_dialog_constructed (GObject *object)
        extension_name = E_SOURCE_EXTENSION_ADDRESS_BOOK;
        client_combo = e_client_combo_box_new (
                priv->client_cache, extension_name);
+       priv->client_combo = client_combo;
        g_signal_connect_swapped (
                client_combo, "changed",
                G_CALLBACK (source_changed), object);
 
-       source_changed (
-               E_NAME_SELECTOR_DIALOG (object),
-               E_CLIENT_COMBO_BOX (client_combo));
-
        gtk_label_set_mnemonic_widget (
                GTK_LABEL (AddressBookLabel), client_combo);
        gtk_widget_show (client_combo);
@@ -580,6 +589,8 @@ name_selector_dialog_constructed (GObject *object)
                _("Select Contacts from Address Book"));
        gtk_widget_grab_focus (search);
 
+       g_signal_connect (object, "realize", G_CALLBACK (name_selector_dialog_realize_cb), NULL);
+
        e_extensible_load_extensions (E_EXTENSIBLE (object));
 }
 


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