From b52cf4cc095e7165f2509a6b091ba07781047350 Mon Sep 17 00:00:00 2001 From: Suman Manjunath Date: Mon, 1 Sep 2008 04:27:02 +0000 Subject: Milan Crha ** Fix for bug #543135 (Write error message to the right stream, do not try to set information message to the message list when it's not visible). svn path=/trunk/; revision=36240 --- mail/ChangeLog | 9 +++++++++ mail/em-format-html-display.c | 7 ++++++- mail/message-list.c | 28 ++++++++++++++++------------ 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/mail/ChangeLog b/mail/ChangeLog index 5bab0ed476..9673688f5c 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,12 @@ +2008-09-01 Milan Crha + + ** Fix for bug #543135 + + * em-format-html-display.c: (efhd_format_optional): + Write error message to the right stream. + * message-list.c: (mail_regen_list), (regen_list_done): Do not try + to set information message to the message list when it's not visible. + 2008-09-01 Milan Crha ** Fix for bug #534039 diff --git a/mail/em-format-html-display.c b/mail/em-format-html-display.c index 199ff19b67..3985b96ec7 100644 --- a/mail/em-format-html-display.c +++ b/mail/em-format-html-display.c @@ -2446,7 +2446,12 @@ efhd_format_optional(EMFormat *emf, CamelStream *fstream, CamelMimePart *part, C { char *classid, *html; struct _attach_puri *info; - CamelStream *stream = ((CamelStreamFilter *) fstream)->source; + CamelStream *stream; + + if (CAMEL_IS_STREAM_FILTER (fstream) && ((CamelStreamFilter *) fstream)->source) + stream = ((CamelStreamFilter *) fstream)->source; + else + stream = fstream; classid = g_strdup_printf("optional%s", emf->part_id->str); info = (struct _attach_puri *)em_format_add_puri(emf, sizeof(*info), classid, part, efhd_attachment_frame); diff --git a/mail/message-list.c b/mail/message-list.c index 4382b0bd82..927297b8eb 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -4217,14 +4217,16 @@ regen_list_done (struct _regen_list_msg *m) } } - if (message_list_length (m->ml) <= 0) { - /* space is used to indicate no search too */ - if (m->ml->search && strcmp (m->ml->search, " ") != 0) - e_tree_set_info_message (m->ml->tree, _("No message satisfies your search criteria. Either clear search with Search->Clear menu item or change it.")); - else - e_tree_set_info_message (m->ml->tree, _("There are no messages in this folder.")); - } else - e_tree_set_info_message (m->ml->tree, NULL); + if (GTK_WIDGET_VISIBLE (GTK_WIDGET (m->ml))) { + if (message_list_length (m->ml) <= 0) { + /* space is used to indicate no search too */ + if (m->ml->search && strcmp (m->ml->search, " ") != 0) + e_tree_set_info_message (m->ml->tree, _("No message satisfies your search criteria. Either clear search with Search->Clear menu item or change it.")); + else + e_tree_set_info_message (m->ml->tree, _("There are no messages in this folder.")); + } else + e_tree_set_info_message (m->ml->tree, NULL); + } g_signal_emit (m->ml, message_list_signals[MESSAGE_LIST_BUILT], 0); m->ml->priv->any_row_changed = FALSE; @@ -4369,12 +4371,14 @@ mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, Came } if (message_list_length (ml) <= 0) { - /* there is some info why the message list is empty, let it be something useful */ - char *txt = g_strconcat (_("Generating message list"), "..." , NULL); + if (GTK_WIDGET_VISIBLE (GTK_WIDGET (ml))) { + /* there is some info why the message list is empty, let it be something useful */ + char *txt = g_strconcat (_("Generating message list"), "..." , NULL); - e_tree_set_info_message (m->ml->tree, txt); + e_tree_set_info_message (m->ml->tree, txt); - g_free (txt); + g_free (txt); + } } else if (ml->priv->any_row_changed && m->dotree && !ml->just_set_folder && (!ml->search || g_str_equal (ml->search, " "))) { /* there has been some change on any row, if it was an expand state change, then let it save; if not, then nothing happen. */ -- cgit v1.2.3