aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-reader.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/e-mail-reader.c')
-rw-r--r--mail/e-mail-reader.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index ff7cd9fd47..2f07a2795a 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -1934,14 +1934,18 @@ mail_reader_set_folder (EMailReader *reader,
html_display = e_mail_reader_get_html_display (reader);
message_list = e_mail_reader_get_message_list (reader);
+ if (message_list->folder != NULL)
+ mail_sync_folder (message_list->folder, NULL, NULL);
+
+ /* Skip the rest if we're already viewing the folder. */
+ if (g_strcmp0 (folder_uri, message_list->folder_uri) == 0)
+ return;
+
outgoing = folder != NULL && folder_uri != NULL && (
em_utils_folder_is_drafts (folder, folder_uri) ||
em_utils_folder_is_outbox (folder, folder_uri) ||
em_utils_folder_is_sent (folder, folder_uri));
- if (message_list->folder != NULL)
- mail_sync_folder (message_list->folder, NULL, NULL);
-
em_format_format (EM_FORMAT (html_display), NULL, NULL, NULL);
message_list_set_folder (message_list, folder, folder_uri, outgoing);