diff options
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 6 | ||||
-rw-r--r-- | mail/message-list.c | 14 |
2 files changed, 13 insertions, 7 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 8577bb408a..928fba418b 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,5 +1,11 @@ 2003-02-03 Jeffrey Stedfast <fejj@ximian.com> + * message-list.c (mail_regen_list): Get the thread_subject setting + here instead of in regen_list_regen since that function will be + called in another thread and we can't make corba calls in anything + but the main thread. + (regen_list_regen): Don't make CORBA calls here! (shame on me). + * mail-identify.c (mail_identify_mime_part): Just use gnome_vfs_get_mime_type_from_name() so we can forget all the crap I implemented before. diff --git a/mail/message-list.c b/mail/message-list.c index 17278893db..1d442c52f5 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -2577,6 +2577,7 @@ struct _regen_list_msg { CamelFolderChangeInfo *changes; gboolean dotree; /* we are building a tree */ gboolean hidedel; /* we want to/dont want to show deleted messages */ + gboolean thread_subject; CamelFolderThread *tree; CamelFolder *folder; @@ -2604,11 +2605,9 @@ regen_list_regen (struct _mail_msg *mm) { struct _regen_list_msg *m = (struct _regen_list_msg *)mm; GPtrArray *uids, *uidnew, *showuids, *searchuids = NULL; - gboolean thread_subject; CamelMessageInfo *info; - GConfClient *gconf; int i; - + /* if we have hidedeleted on, use a search to find it out, merge with existing search if set */ if (!camel_folder_has_search_capability(m->folder)) { /* if we have no search capability, dont let search or hide deleted work */ @@ -2709,16 +2708,13 @@ regen_list_regen (struct _mail_msg *mm) MESSAGE_LIST_UNLOCK(m->ml, hide_lock); - gconf = gconf_client_get_default (); - thread_subject = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/thread_subject", NULL); - if (!camel_operation_cancel_check(mm->cancel)) { /* update/build a new tree */ if (m->dotree) { if (m->tree) camel_folder_thread_messages_apply (m->tree, showuids); else - m->tree = camel_folder_thread_messages_new (m->folder, showuids, thread_subject); + m->tree = camel_folder_thread_messages_new (m->folder, showuids, m->thread_subject); } else { m->summary = g_ptr_array_new (); for (i = 0; i < showuids->len; i++) { @@ -2811,6 +2807,7 @@ static void mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, CamelFolderChangeInfo *changes) { struct _regen_list_msg *m; + GConfClient *gconf; if (ml->folder == NULL) return; @@ -2828,6 +2825,8 @@ mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, Came } } + gconf = gconf_client_get_default (); + #ifndef BROKEN_ETREE /* this can sometimes crash,so ... */ @@ -2847,6 +2846,7 @@ mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, Came m->changes = changes; m->dotree = ml->threaded; m->hidedel = ml->hidedeleted; + m->thread_subject = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/thread_subject", NULL); g_object_ref(ml); m->folder = ml->folder; camel_object_ref(m->folder); |