diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compose.c | 42 | ||||
-rw-r--r-- | src/inc.c | 10 | ||||
-rw-r--r-- | src/prefs_common_dialog.c | 1 |
3 files changed, 28 insertions, 25 deletions
diff --git a/src/compose.c b/src/compose.c index d8e7b67b..0e35f5ca 100644 --- a/src/compose.c +++ b/src/compose.c @@ -2677,28 +2677,34 @@ static gint compose_send(Compose *compose) /* save message to outbox */ if (prefs_common.savemsg) { FolderItem *outbox; + gboolean drop_done = FALSE; - outbox = account_get_special_folder - (compose->account, F_OUTBOX); - if (procmsg_save_to_outbox(outbox, tmp) < 0) - alertpanel_error - (_("Can't save the message to outbox.")); - else - folderview_update_item(outbox, TRUE); - } - /* filter sent message */ - if (prefs_common.filter_sent) { - FilterInfo *fltinfo; + /* filter sent message */ + if (prefs_common.filter_sent) { + FilterInfo *fltinfo; - fltinfo = filter_info_new(); - fltinfo->account = compose->account; - fltinfo->flags.perm_flags = 0; - fltinfo->flags.tmp_flags = MSG_RECEIVED; + fltinfo = filter_info_new(); + fltinfo->account = compose->account; + fltinfo->flags.perm_flags = 0; + fltinfo->flags.tmp_flags = MSG_RECEIVED; - filter_apply(prefs_common.fltlist, tmp, fltinfo); + filter_apply(prefs_common.fltlist, tmp, + fltinfo); - folderview_update_all_updated(TRUE); - filter_info_free(fltinfo); + drop_done = fltinfo->drop_done; + folderview_update_all_updated(TRUE); + filter_info_free(fltinfo); + } + + if (!drop_done) { + outbox = account_get_special_folder + (compose->account, F_OUTBOX); + if (procmsg_save_to_outbox(outbox, tmp) < 0) + alertpanel_error + (_("Can't save the message to outbox.")); + else + folderview_update_item(outbox, TRUE); + } } } @@ -1063,13 +1063,9 @@ static gint inc_drop_message(Pop3Session *session, const gchar *file) val = GPOINTER_TO_INT(g_hash_table_lookup (inc_session->folder_table, drop_folder)); - if (val == 0) { - /* force updating */ - if (FOLDER_IS_LOCAL(drop_folder->folder)) - drop_folder->mtime = 0; - g_hash_table_insert(inc_session->folder_table, drop_folder, - GINT_TO_POINTER(1)); - } + if (val == 0) + g_hash_table_insert(inc_session->folder_table, + drop_folder, GINT_TO_POINTER(1)); g_hash_table_insert(inc_session->tmp_folder_table, drop_folder, GINT_TO_POINTER(1)); } diff --git a/src/prefs_common_dialog.c b/src/prefs_common_dialog.c index 0f851a4b..cca53a94 100644 --- a/src/prefs_common_dialog.c +++ b/src/prefs_common_dialog.c @@ -854,6 +854,7 @@ static void prefs_send_create(void) _("Save sent messages to outbox")); PACK_CHECK_BUTTON (vbox2, checkbtn_filter_sent, _("Apply filter rules to sent messages")); + SET_TOGGLE_SENSITIVITY (checkbtn_savemsg, checkbtn_filter_sent); hbox1 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox1); |