talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 010142b1da0029ed368c20bb5281391788ff6c82
parent 3bc286d48afdd339056943c4a4f75146427ef64a
Author: Paweł Pękala <c0rn@gazeta.pl>
Date:   Wed, 11 Nov 2009 13:38:28 +0000

 [pawel]	3.7.3cvs13

	* src/addressbook.c
	* src/compose.c
	* src/compose.h
	* src/filtering.c
		Fix Bug 1867 Changing account does not change BCC address
		Set account specific headers when changing account
		in compose window.

Diffstat:
MChangeLog | 10++++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/addressbook.c | 8++++----
Msrc/compose.c | 221+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
Msrc/compose.h | 13++++++++++++-
Msrc/filtering.c | 4++--
7 files changed, 191 insertions(+), 68 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,13 @@ + [pawel] 3.7.3cvs13 + + * src/addressbook.c + * src/compose.c + * src/compose.h + * src/filtering.c + Fix Bug 1867 Changing account does not change BCC address + Set account specific headers when changing account + in compose window. + 2009-11-07 [colin] 3.7.3cvs12 * src/gtk/prefswindow.c diff --git a/PATCHSETS b/PATCHSETS @@ -3886,3 +3886,4 @@ ( cvs diff -u -r 1.213.2.194 -r 1.213.2.195 src/folder.c; ) > 3.7.3cvs10.patchset ( cvs diff -u -r 1.1.2.8 -r 1.1.2.9 src/gtk/spell_entry.c; ) > 3.7.3cvs11.patchset ( cvs diff -u -r 1.12.2.53 -r 1.12.2.54 src/gtk/prefswindow.c; ) > 3.7.3cvs12.patchset +( cvs diff -u -r 1.60.2.134 -r 1.60.2.135 src/addressbook.c; cvs diff -u -r 1.382.2.524 -r 1.382.2.525 src/compose.c; cvs diff -u -r 1.50.2.55 -r 1.50.2.56 src/compose.h; cvs diff -u -r 1.60.2.53 -r 1.60.2.54 src/filtering.c; ) > 3.7.3cvs13.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=3 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=12 +EXTRA_VERSION=13 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/addressbook.c b/src/addressbook.c @@ -1766,7 +1766,7 @@ static void addressbook_to_clicked(GtkButton *button, gpointer data) addr = (char *)gtk_entry_get_text( GTK_ENTRY( addrbook.entry) ); if ( addr ) { compose_entry_append( - compose, addr, (ComposeEntryType)data ); + compose, addr, (ComposeEntryType)data , PREF_NONE); } /* Select from address list */ @@ -1781,7 +1781,7 @@ static void addressbook_to_clicked(GtkButton *button, gpointer data) aio->type == ADDR_ITEM_EMAIL ) { addr = addressbook_format_address( aio ); compose_entry_append( - compose, addr, (ComposeEntryType) data ); + compose, addr, (ComposeEntryType) data, PREF_NONE ); g_free( addr ); } else if( aio->type == ADDR_ITEM_GROUP ) { @@ -1793,7 +1793,7 @@ static void addressbook_to_clicked(GtkButton *button, gpointer data) addr = addressbook_format_address( ( AddrItemObject * ) email ); compose_entry_append( - compose, addr, (ComposeEntryType) data ); + compose, addr, (ComposeEntryType) data, PREF_NONE ); g_free( addr ); nodeMail = g_list_next( nodeMail ); } @@ -1813,7 +1813,7 @@ static void addressbook_to_clicked(GtkButton *button, gpointer data) addr = addressbook_format_address( ( AddrItemObject * ) email ); compose_entry_append( - compose, addr, (ComposeEntryType) data ); + compose, addr, (ComposeEntryType) data, PREF_NONE ); g_free( addr ); nodeMail = g_list_next( nodeMail ); } diff --git a/src/compose.c b/src/compose.c @@ -328,7 +328,8 @@ static void compose_undo_state_changed (UndoMain *undostruct, gpointer data); static void compose_create_header_entry (Compose *compose); -static void compose_add_header_entry (Compose *compose, const gchar *header, gchar *text); +static void compose_add_header_entry (Compose *compose, const gchar *header, + gchar *text, ComposePrefType pref_type); static void compose_remove_header_entries(Compose *compose); static void compose_update_priority_menu_item(Compose * compose); @@ -1020,16 +1021,20 @@ Compose *compose_generic_new(PrefsAccount *account, const gchar *mailto, FolderI } else if (item && item->prefs) { if (item->prefs->enable_default_bcc) { - compose_entry_append(compose, item->prefs->default_bcc, COMPOSE_BCC); + compose_entry_append(compose, item->prefs->default_bcc, + COMPOSE_BCC, PREF_FOLDER); } if (item->prefs->enable_default_cc) { - compose_entry_append(compose, item->prefs->default_cc, COMPOSE_CC); + compose_entry_append(compose, item->prefs->default_cc, + COMPOSE_CC, PREF_FOLDER); } if (item->prefs->enable_default_replyto) { - compose_entry_append(compose, item->prefs->default_replyto, COMPOSE_REPLYTO); + compose_entry_append(compose, item->prefs->default_replyto, + COMPOSE_REPLYTO, PREF_FOLDER); } if (item->prefs->enable_default_to) { - compose_entry_append(compose, item->prefs->default_to, COMPOSE_TO); + compose_entry_append(compose, item->prefs->default_to, + COMPOSE_TO, PREF_FOLDER); compose_entry_mark_default_to(compose, item->prefs->default_to); } } @@ -1043,7 +1048,7 @@ Compose *compose_generic_new(PrefsAccount *account, const gchar *mailto, FolderI else compose_entries_set(compose, mailto, COMPOSE_TO); } else if (item && FOLDER_CLASS(item->folder) == news_get_class()) { - compose_entry_append(compose, item->path, COMPOSE_NEWSGROUPS); + compose_entry_append(compose, item->path, COMPOSE_NEWSGROUPS, PREF_FOLDER); } /* * CLAWS: just don't allow return receipt request, even if the user @@ -2382,7 +2387,7 @@ GList *compose_get_compose_list(void) } void compose_entry_append(Compose *compose, const gchar *address, - ComposeEntryType type) + ComposeEntryType type, ComposePrefType pref_type) { const gchar *header; gchar *cur, *begin; @@ -2427,7 +2432,7 @@ void compose_entry_append(Compose *compose, const gchar *address, begin = cur; while (*tmp == ' ' || *tmp == '\t') tmp++; - compose_add_header_entry(compose, header, tmp); + compose_add_header_entry(compose, header, tmp, pref_type); g_free(o_tmp); continue; } @@ -2441,7 +2446,7 @@ void compose_entry_append(Compose *compose, const gchar *address, begin = cur; while (*tmp == ' ' || *tmp == '\t') tmp++; - compose_add_header_entry(compose, header, tmp); + compose_add_header_entry(compose, header, tmp, pref_type); g_free(o_tmp); } } @@ -2542,11 +2547,11 @@ static void compose_entries_set(Compose *compose, const gchar *mailto, ComposeEn scan_mailto_url(mailto, NULL, &to, &cc, &bcc, &subject, &body, &attach); if (to) - compose_entry_append(compose, to, to_type); + compose_entry_append(compose, to, to_type, PREF_MAILTO); if (cc) - compose_entry_append(compose, cc, COMPOSE_CC); + compose_entry_append(compose, cc, COMPOSE_CC, PREF_MAILTO); if (bcc) - compose_entry_append(compose, bcc, COMPOSE_BCC); + compose_entry_append(compose, bcc, COMPOSE_BCC, PREF_MAILTO); if (subject) { if (!g_utf8_validate (subject, -1, NULL)) { temp = g_locale_to_utf8 (subject, -1, NULL, &len, NULL); @@ -3007,13 +3012,16 @@ static void compose_reply_set_entry(Compose *compose, MsgInfo *msginfo, if (compose->account->protocol != A_NNTP) { if (msginfo && msginfo->folder && msginfo->folder->prefs) { if (msginfo->folder->prefs->enable_default_replyto) { - compose_entry_append(compose, msginfo->folder->prefs->default_replyto, COMPOSE_REPLYTO); + compose_entry_append(compose, msginfo->folder->prefs->default_replyto, + COMPOSE_REPLYTO, PREF_FOLDER); } if (msginfo->folder->prefs->enable_default_bcc) { - compose_entry_append(compose, msginfo->folder->prefs->default_bcc, COMPOSE_BCC); + compose_entry_append(compose, msginfo->folder->prefs->default_bcc, + COMPOSE_BCC, PREF_FOLDER); } if (msginfo->folder->prefs->enable_default_cc) { - compose_entry_append(compose, msginfo->folder->prefs->default_cc, COMPOSE_CC); + compose_entry_append(compose, msginfo->folder->prefs->default_cc, + COMPOSE_CC, PREF_FOLDER); } } if (reply_to_ml && !default_reply_to) { @@ -3024,28 +3032,28 @@ static void compose_reply_set_entry(Compose *compose, MsgInfo *msginfo, /* normal answer to ml post with a reply-to */ compose_entry_append(compose, compose->ml_post, - COMPOSE_TO); + COMPOSE_TO, PREF_ML); if (compose->replyto && !same_address(compose->ml_post, compose->replyto)) compose_entry_append(compose, compose->replyto, - COMPOSE_CC); + COMPOSE_CC, PREF_ML); } else { /* answer to subscription confirmation */ if (compose->replyto) compose_entry_append(compose, compose->replyto, - COMPOSE_TO); + COMPOSE_TO, PREF_ML); else if (msginfo->from) compose_entry_append(compose, msginfo->from, - COMPOSE_TO); + COMPOSE_TO, PREF_ML); } } else if (!(to_all || to_sender) && default_reply_to) { compose_entry_append(compose, msginfo->folder->prefs->default_reply_to, - COMPOSE_TO); + COMPOSE_TO, PREF_FOLDER); compose_entry_mark_default_to(compose, msginfo->folder->prefs->default_reply_to); } else { @@ -3060,7 +3068,7 @@ static void compose_reply_set_entry(Compose *compose, MsgInfo *msginfo, (compose->replyto && !to_sender) ? compose->replyto : msginfo->from ? msginfo->from : "", - COMPOSE_TO); + COMPOSE_TO, PREF_NONE); else if (!to_all && !to_sender) { if (!folder_has_parent_of_type(msginfo->folder, F_QUEUE) && !folder_has_parent_of_type(msginfo->folder, F_OUTBOX) && @@ -3068,20 +3076,20 @@ static void compose_reply_set_entry(Compose *compose, MsgInfo *msginfo, if (compose->replyto) { compose_entry_append(compose, compose->replyto, - COMPOSE_TO); + COMPOSE_TO, PREF_NONE); } else { compose_entry_append(compose, msginfo->from ? msginfo->from : "", - COMPOSE_TO); + COMPOSE_TO, PREF_NONE); } } else { /* replying to own mail, use original recp */ compose_entry_append(compose, msginfo->to ? msginfo->to : "", - COMPOSE_TO); + COMPOSE_TO, PREF_NONE); compose_entry_append(compose, msginfo->cc ? msginfo->cc : "", - COMPOSE_CC); + COMPOSE_CC, PREF_NONE); } } } @@ -3092,27 +3100,27 @@ static void compose_reply_set_entry(Compose *compose, MsgInfo *msginfo, (compose, (compose->replyto ? compose->replyto : msginfo->from ? msginfo->from : ""), - COMPOSE_TO); + COMPOSE_TO, PREF_NONE); else if (followup_and_reply_to || to_all) { compose_entry_append (compose, (compose->replyto ? compose->replyto : msginfo->from ? msginfo->from : ""), - COMPOSE_TO); + COMPOSE_TO, PREF_NONE); compose_entry_append (compose, compose->followup_to ? compose->followup_to : compose->newsgroups ? compose->newsgroups : "", - COMPOSE_NEWSGROUPS); + COMPOSE_NEWSGROUPS, PREF_NONE); } else compose_entry_append (compose, compose->followup_to ? compose->followup_to : compose->newsgroups ? compose->newsgroups : "", - COMPOSE_NEWSGROUPS); + COMPOSE_NEWSGROUPS, PREF_NONE); } if (msginfo->subject && *msginfo->subject) { @@ -3180,7 +3188,7 @@ static void compose_reply_set_entry(Compose *compose, MsgInfo *msginfo, if (cc_list) { for (cur = cc_list; cur != NULL; cur = cur->next) compose_entry_append(compose, (gchar *)cur->data, - COMPOSE_CC); + COMPOSE_CC, PREF_NONE); slist_free_strings(cc_list); g_slist_free(cc_list); } @@ -3196,7 +3204,7 @@ static void compose_reply_set_entry(Compose *compose, MsgInfo *msginfo, #define SET_ADDRESS(type, str) \ { \ if (str && *str) \ - compose_entry_append(compose, str, type); \ + compose_entry_append(compose, str, type, PREF_NONE); \ } static void compose_reedit_set_entry(Compose *compose, MsgInfo *msginfo) @@ -6364,6 +6372,8 @@ static void compose_create_header_entry(Compose *compose) const gchar *header = NULL; ComposeHeaderEntry *headerentry; gboolean standard_header = FALSE; + GtkListStore *model; + GtkTreeIter iter; #if !(GTK_CHECK_VERSION(2,12,0)) GtkTooltips *tips = compose->tooltips; #endif @@ -6371,13 +6381,21 @@ static void compose_create_header_entry(Compose *compose) headerentry = g_new0(ComposeHeaderEntry, 1); /* Combo box */ - combo = gtk_combo_box_entry_new_text(); - string = headers; - while(*string != NULL) { - gtk_combo_box_append_text(GTK_COMBO_BOX(combo), - (gchar*)prefs_common_translated_header_name(*string)); - string++; - } + model = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN); + combo = gtk_combo_box_entry_new_with_model(GTK_TREE_MODEL(model), 0); + COMBOBOX_ADD(model, prefs_common_translated_header_name("To:"), + COMPOSE_TO); + COMBOBOX_ADD(model, prefs_common_translated_header_name("Cc:"), + COMPOSE_CC); + COMBOBOX_ADD(model, prefs_common_translated_header_name("Bcc:"), + COMPOSE_BCC); + COMBOBOX_ADD(model, prefs_common_translated_header_name("Newsgroups:"), + COMPOSE_NEWSGROUPS); + COMBOBOX_ADD(model, prefs_common_translated_header_name("Reply-To:"), + COMPOSE_REPLYTO); + COMBOBOX_ADD(model, prefs_common_translated_header_name("Followup-To:"), + COMPOSE_FOLLOWUPTO); + gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0); g_signal_connect(G_OBJECT(gtk_bin_get_child(GTK_BIN((combo)))), "grab_focus", G_CALLBACK(compose_grab_focus_cb), compose); @@ -6471,6 +6489,7 @@ static void compose_create_header_entry(Compose *compose) headerentry->button = button; headerentry->hbox = hbox; headerentry->headernum = compose->header_nextrow; + headerentry->type = PREF_NONE; compose->header_nextrow++; compose->header_last = headerentry; @@ -6479,28 +6498,33 @@ static void compose_create_header_entry(Compose *compose) headerentry); } -static void compose_add_header_entry(Compose *compose, const gchar *header, gchar *text) +static void compose_add_header_entry(Compose *compose, const gchar *header, + gchar *text, ComposePrefType pref_type) { ComposeHeaderEntry *last_header; last_header = compose->header_last; - gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((last_header->combo)))), header); + combobox_select_by_text(GTK_COMBO_BOX(last_header->combo), header); gtk_entry_set_text(GTK_ENTRY(last_header->entry), text); + last_header->type = pref_type; +} + +static void compose_destroy_headerentry(ComposeHeaderEntry *headerentry) +{ + gtk_widget_destroy(headerentry->combo); + gtk_widget_destroy(headerentry->entry); + gtk_widget_destroy(headerentry->button); + gtk_widget_destroy(headerentry->hbox); + g_free(headerentry); } static void compose_remove_header_entries(Compose *compose) { GSList *list; - for (list = compose->header_list; list; list = list->next) { - ComposeHeaderEntry *headerentry = - (ComposeHeaderEntry *)list->data; - gtk_widget_destroy(headerentry->combo); - gtk_widget_destroy(headerentry->entry); - gtk_widget_destroy(headerentry->button); - gtk_widget_destroy(headerentry->hbox); - g_free(headerentry); - } + for (list = compose->header_list; list; list = list->next) + compose_destroy_headerentry((ComposeHeaderEntry *)list->data); + compose->header_last = NULL; g_slist_free(compose->header_list); compose->header_list = NULL; @@ -7452,13 +7476,13 @@ static Compose *compose_create(PrefsAccount *account, cm_toggle_menu_set_active_full(compose->ui_manager, "Menu/Edit/AutoIndent", prefs_common.auto_indent); if (account->set_autocc && account->auto_cc && mode != COMPOSE_REEDIT) - compose_entry_append(compose, account->auto_cc, COMPOSE_CC); + compose_entry_append(compose, account->auto_cc, COMPOSE_CC, PREF_ACCOUNT); if (account->set_autobcc && account->auto_bcc && mode != COMPOSE_REEDIT) - compose_entry_append(compose, account->auto_bcc, COMPOSE_BCC); + compose_entry_append(compose, account->auto_bcc, COMPOSE_BCC, PREF_ACCOUNT); if (account->set_autoreplyto && account->auto_replyto && mode != COMPOSE_REEDIT) - compose_entry_append(compose, account->auto_replyto, COMPOSE_REPLYTO); + compose_entry_append(compose, account->auto_replyto, COMPOSE_REPLYTO, PREF_ACCOUNT); cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Options/ReplyMode", compose->mode == COMPOSE_REPLY); if (account->protocol != A_NNTP) @@ -7620,13 +7644,13 @@ static void compose_reply_change_mode(Compose *compose, compose_remove_header_entries(compose); compose_reply_set_entry(compose, compose->replyinfo, all, ml, sender, followup); if (compose->account->set_autocc && compose->account->auto_cc) - compose_entry_append(compose, compose->account->auto_cc, COMPOSE_CC); + compose_entry_append(compose, compose->account->auto_cc, COMPOSE_CC, PREF_ACCOUNT); if (compose->account->set_autobcc && compose->account->auto_bcc) - compose_entry_append(compose, compose->account->auto_bcc, COMPOSE_BCC); + compose_entry_append(compose, compose->account->auto_bcc, COMPOSE_BCC, PREF_ACCOUNT); if (compose->account->set_autoreplyto && compose->account->auto_replyto) - compose_entry_append(compose, compose->account->auto_replyto, COMPOSE_REPLYTO); + compose_entry_append(compose, compose->account->auto_replyto, COMPOSE_REPLYTO, PREF_ACCOUNT); compose_show_first_last_header(compose, TRUE); compose->modified = was_modified; compose_set_title(compose); @@ -8074,7 +8098,7 @@ static void compose_template_apply_fields(Compose *compose, Template *tmpl) if (buf == NULL) { alertpanel_error(_("Template To format error.")); } else { - compose_entry_append(compose, buf, COMPOSE_TO); + compose_entry_append(compose, buf, COMPOSE_TO, PREF_TEMPLATE); } } @@ -8092,7 +8116,7 @@ static void compose_template_apply_fields(Compose *compose, Template *tmpl) if (buf == NULL) { alertpanel_error(_("Template Cc format error.")); } else { - compose_entry_append(compose, buf, COMPOSE_CC); + compose_entry_append(compose, buf, COMPOSE_CC, PREF_TEMPLATE); } } @@ -8110,7 +8134,7 @@ static void compose_template_apply_fields(Compose *compose, Template *tmpl) if (buf == NULL) { alertpanel_error(_("Template Bcc format error.")); } else { - compose_entry_append(compose, buf, COMPOSE_BCC); + compose_entry_append(compose, buf, COMPOSE_BCC, PREF_TEMPLATE); } } @@ -8932,6 +8956,13 @@ static gboolean compose_edit_size_alloc(GtkEditable *widget, return TRUE; } +typedef struct { + ComposeEntryType header; + gchar *entry; + ComposePrefType type; + gboolean entry_marked; +} HeaderEntryState; + static void account_activated(GtkComboBox *optmenu, gpointer data) { Compose *compose = (Compose *)data; @@ -8941,6 +8972,11 @@ static void account_activated(GtkComboBox *optmenu, gpointer data) gint account_id = 0; GtkTreeModel *menu; GtkTreeIter iter; + GSList *list, *saved_list = NULL; + HeaderEntryState *state; + GtkRcStyle *style = NULL; + static GdkColor yellow; + static gboolean color_set = FALSE; /* Get ID of active account in the combo box */ menu = gtk_combo_box_get_model(optmenu); @@ -8950,9 +8986,74 @@ static void account_activated(GtkComboBox *optmenu, gpointer data) ac = account_find_from_id(account_id); cm_return_if_fail(ac != NULL); - if (ac != compose->account) + if (ac != compose->account) { compose_select_account(compose, ac, FALSE); + for (list = compose->header_list; list; list = list->next) { + ComposeHeaderEntry *hentry=(ComposeHeaderEntry *)list->data; + + if (hentry->type == PREF_ACCOUNT || !list->next) { + compose_destroy_headerentry(hentry); + continue; + } + + state = g_malloc0(sizeof(HeaderEntryState)); + state->header = combobox_get_active_data( + GTK_COMBO_BOX(hentry->combo)); + state->entry = gtk_editable_get_chars( + GTK_EDITABLE(hentry->entry), 0, -1); + state->type = hentry->type; + + if (!color_set) { + gdk_color_parse("#f5f6be", &yellow); + color_set = gdk_colormap_alloc_color( + gdk_colormap_get_system(), + &yellow, FALSE, TRUE); + } + + style = gtk_widget_get_modifier_style(hentry->entry); + state->entry_marked = gdk_color_equal(&yellow, + &style->base[GTK_STATE_NORMAL]); + + saved_list = g_slist_append(saved_list, state); + compose_destroy_headerentry(hentry); + } + + compose->header_last = NULL; + g_slist_free(compose->header_list); + compose->header_list = NULL; + compose->header_nextrow = 1; + compose_create_header_entry(compose); + + if (ac->set_autocc && ac->auto_cc) + compose_entry_append(compose, ac->auto_cc, + COMPOSE_CC, PREF_ACCOUNT); + + if (ac->set_autobcc && ac->auto_bcc) + compose_entry_append(compose, ac->auto_bcc, + COMPOSE_BCC, PREF_ACCOUNT); + + if (ac->set_autoreplyto && ac->auto_replyto) + compose_entry_append(compose, ac->auto_replyto, + COMPOSE_REPLYTO, PREF_ACCOUNT); + + for (list = saved_list; list; list = list->next) { + state = (HeaderEntryState *) list->data; + + compose_entry_append(compose, state->entry, + state->header, state->type); + if (state->entry_marked) + compose_entry_mark_default_to(compose, state->entry); + + g_free(state->entry); + } + g_slist_free(saved_list); + + combobox_select_by_data(GTK_COMBO_BOX(compose->header_last->combo), + (ac->protocol == A_NNTP) ? + COMPOSE_NEWSGROUPS : COMPOSE_TO); + } + /* Set message save folder */ if (account_get_special_folder(compose->account, F_OUTBOX)) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(compose->savemsg_checkbtn), prefs_common.savemsg); @@ -10782,7 +10883,7 @@ static void compose_add_field_list( Compose *compose, GList *listAddress ) { node = listAddress; while( node ) { addr = ( gchar * ) node->data; - compose_entry_append( compose, addr, COMPOSE_TO ); + compose_entry_append( compose, addr, COMPOSE_TO, PREF_NONE ); node = g_list_next( node ); } } diff --git a/src/compose.h b/src/compose.h @@ -77,6 +77,15 @@ typedef enum COMPOSE_REEDIT } ComposeMode; +typedef enum { + PREF_ACCOUNT, + PREF_FOLDER, + PREF_TEMPLATE, + PREF_ML, + PREF_MAILTO, + PREF_NONE +} ComposePrefType; + typedef struct { guint headernum; Compose *compose; @@ -84,6 +93,7 @@ typedef struct { GtkWidget *entry; GtkWidget *button; GtkWidget *hbox; + ComposePrefType type; } ComposeHeaderEntry; struct _Compose @@ -285,7 +295,8 @@ GList *compose_get_compose_list (void); void compose_entry_append (Compose *compose, const gchar *address, - ComposeEntryType type); + ComposeEntryType type, + ComposePrefType pref_type); gint compose_send (Compose *compose); diff --git a/src/filtering.c b/src/filtering.c @@ -400,7 +400,7 @@ static gboolean filteringaction_apply(FilteringAction * action, MsgInfo * info) compose_entry_append(compose, action->destination, compose->account->protocol == A_NNTP ? COMPOSE_NEWSGROUPS - : COMPOSE_TO); + : COMPOSE_TO, PREF_NONE); val = compose_send(compose); @@ -413,7 +413,7 @@ static gboolean filteringaction_apply(FilteringAction * action, MsgInfo * info) break; else compose_entry_append(compose, action->destination, - COMPOSE_TO); + COMPOSE_TO, PREF_NONE); val = compose_send(compose);