aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compose.c42
-rw-r--r--src/inc.c10
-rw-r--r--src/prefs_common_dialog.c1
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);
+ }
}
}
diff --git a/src/inc.c b/src/inc.c
index 4e0a206c..f03e2b72 100644
--- a/src/inc.c
+++ b/src/inc.c
@@ -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);