diff options
Diffstat (limited to 'mail/e-mail-reader.c')
-rw-r--r-- | mail/e-mail-reader.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c index 2cc78f86b8..a5a66e3e87 100644 --- a/mail/e-mail-reader.c +++ b/mail/e-mail-reader.c @@ -3042,8 +3042,8 @@ mail_reader_set_folder (EMailReader *reader, shell = e_shell_backend_get_shell (E_SHELL_BACKEND (backend)); - /* Only synchronize the folder if we're online. */ - if (previous_folder != NULL && e_shell_get_online (shell)) + /* Only synchronize the real folder if we're online. */ + if (previous_folder != NULL && (CAMEL_IS_VEE_FOLDER (previous_folder) || e_shell_get_online (shell))) mail_sync_folder (previous_folder, NULL, NULL); /* Skip the rest if we're already viewing the folder. */ @@ -3059,6 +3059,11 @@ mail_reader_set_folder (EMailReader *reader, priv->folder_was_just_selected = (folder != NULL); + /* this is to make sure any post-poned changes in Search Folders + will be propagated on folder selection */ + if (folder && CAMEL_IS_VEE_FOLDER (folder)) + mail_sync_folder (folder, NULL, NULL); + message_list_set_folder ( MESSAGE_LIST (message_list), folder, outgoing); |