don't remove the To when changing account
[claws.git] / src / compose.c
index da8c9a0784af2fea48b17b23cf776b13efecd145..7f44aec8c20b11818d990ec35b28482b3969e09f 100644 (file)
@@ -3237,15 +3237,21 @@ static void compose_set_folder_prefs(Compose *compose, FolderItem *folder,
                                        COMPOSE_TO, PREF_FOLDER);
                compose_entry_mark_default_to(compose, folder->prefs->default_to);
        }
-       if (folder->prefs->enable_default_cc)
+       if (folder->prefs->enable_default_cc) {
                compose_entry_append(compose, folder->prefs->default_cc,
                                        COMPOSE_CC, PREF_FOLDER);
-       if (folder->prefs->enable_default_bcc)
+               compose_entry_mark_default_to(compose, folder->prefs->default_cc);
+       }
+       if (folder->prefs->enable_default_bcc) {
                compose_entry_append(compose, folder->prefs->default_bcc,
                                        COMPOSE_BCC, PREF_FOLDER);
-       if (folder->prefs->enable_default_replyto)
+               compose_entry_mark_default_to(compose, folder->prefs->default_bcc);
+       }
+       if (folder->prefs->enable_default_replyto) {
                compose_entry_append(compose, folder->prefs->default_replyto,
                                        COMPOSE_REPLYTO, PREF_FOLDER);
+               compose_entry_mark_default_to(compose, folder->prefs->default_replyto);
+       }
 }
 
 static void compose_reply_set_subject(Compose *compose, MsgInfo *msginfo)
@@ -9738,13 +9744,6 @@ static void account_activated(GtkComboBox *optmenu, gpointer data)
        GtkTreeIter iter;
        GSList *list, *saved_list = NULL;
        HeaderEntryState *state;
-       GtkRcStyle *style = NULL;
-#if !GTK_CHECK_VERSION(3, 0, 0)
-       static GdkColor yellow;
-       static gboolean color_set = FALSE;
-#else
-       static GdkColor yellow = { (guint32)0, (guint32)0xf5, (guint32)0xf6, (guint32)0xbe };
-#endif
 
        /* Get ID of active account in the combo box */
        menu = gtk_combo_box_get_model(optmenu);
@@ -9764,26 +9763,12 @@ static void account_activated(GtkComboBox *optmenu, gpointer data)
                                compose_destroy_headerentry(compose, hentry);
                                continue;
                        }
-                       
                        state = g_malloc0(sizeof(HeaderEntryState));
                        state->header = gtk_editable_get_chars(GTK_EDITABLE(
                                        gtk_bin_get_child(GTK_BIN(hentry->combo))), 0, -1);
                        state->entry = gtk_editable_get_chars(
                                        GTK_EDITABLE(hentry->entry), 0, -1);
                        state->type = hentry->type;
-                               
-#if !GTK_CHECK_VERSION(3, 0, 0)
-                       if (!color_set) {
-                               gdk_color_parse("#f5f6be", &yellow);
-                               color_set = gdk_colormap_alloc_color(
-                                                       gdk_colormap_get_system(),
-                                                       &yellow, FALSE, TRUE);
-                       }
-#endif
-                               
-                       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(compose, hentry);
@@ -9795,32 +9780,36 @@ static void account_activated(GtkComboBox *optmenu, gpointer data)
                compose->header_nextrow = 1;
                compose_create_header_entry(compose);
                
-               if (ac->set_autocc && ac->auto_cc)
+               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_mark_default_to(compose, ac->auto_cc);
+               }
+               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_mark_default_to(compose, ac->auto_bcc);
+               }
+               if (ac->set_autoreplyto && ac->auto_replyto) {
                        compose_entry_append(compose, ac->auto_replyto,
                                                COMPOSE_REPLYTO, PREF_ACCOUNT);
+                       compose_entry_mark_default_to(compose, ac->auto_replyto);
+               }
                
                for (list = saved_list; list; list = list->next) {
                        state = (HeaderEntryState *) list->data;
-                       
+
                        compose_add_header_entry(compose, state->header,
                                                state->entry, state->type);
                        if (state->entry_marked)
                                compose_entry_mark_default_to(compose, state->entry);
-                       
-                       g_free(state->header);  
+
+                       g_free(state->header);
                        g_free(state->entry);
                        g_free(state);
                }
                g_slist_free(saved_list);
-               
+
                combobox_select_by_data(GTK_COMBO_BOX(compose->header_last->combo),
                                        (ac->protocol == A_NNTP) ? 
                                        COMPOSE_NEWSGROUPS : COMPOSE_TO);