diff options
author | Milan Crha <mcrha@redhat.com> | 2012-09-05 22:43:58 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2012-09-05 22:43:58 +0800 |
commit | e18f1b87095c60977c4c0e0a279e7ee78a049dc6 (patch) | |
tree | e3f16f2372966ae6081c3159f0caf8cd8835fda6 /composer | |
parent | 511acab89a83114aad35e9c6f76a8f284907dab9 (diff) | |
download | gsoc2013-evolution-e18f1b87095c60977c4c0e0a279e7ee78a049dc6.tar gsoc2013-evolution-e18f1b87095c60977c4c0e0a279e7ee78a049dc6.tar.gz gsoc2013-evolution-e18f1b87095c60977c4c0e0a279e7ee78a049dc6.tar.bz2 gsoc2013-evolution-e18f1b87095c60977c4c0e0a279e7ee78a049dc6.tar.lz gsoc2013-evolution-e18f1b87095c60977c4c0e0a279e7ee78a049dc6.tar.xz gsoc2013-evolution-e18f1b87095c60977c4c0e0a279e7ee78a049dc6.tar.zst gsoc2013-evolution-e18f1b87095c60977c4c0e0a279e7ee78a049dc6.zip |
Composer could start with empty From
Diffstat (limited to 'composer')
-rw-r--r-- | composer/e-composer-from-header.c | 39 | ||||
-rw-r--r-- | composer/e-msg-composer.c | 9 |
2 files changed, 45 insertions, 3 deletions
diff --git a/composer/e-composer-from-header.c b/composer/e-composer-from-header.c index a844ca3d6a..ceecd68b87 100644 --- a/composer/e-composer-from-header.c +++ b/composer/e-composer-from-header.c @@ -107,7 +107,44 @@ e_composer_from_header_set_active_id (EComposerFromHeader *header, g_return_if_fail (E_IS_COMPOSER_FROM_HEADER (header)); + if (!active_id) + return; + combo_box = GTK_COMBO_BOX (E_COMPOSER_HEADER (header)->input_widget); - gtk_combo_box_set_active_id (combo_box, active_id); + if (!gtk_combo_box_set_active_id (combo_box, active_id) && active_id && *active_id) { + ESourceRegistry *registry; + GtkTreeModel *model; + GtkTreeIter iter; + gint id_column; + + registry = e_composer_header_get_registry (E_COMPOSER_HEADER (header)); + id_column = gtk_combo_box_get_id_column (combo_box); + model = gtk_combo_box_get_model (combo_box); + + if (gtk_tree_model_get_iter_first (model, &iter)) { + do { + gchar *identity_uid = NULL; + + gtk_tree_model_get (model, &iter, id_column, &identity_uid, -1); + + if (identity_uid) { + ESource *source; + + source = e_source_registry_ref_source (registry, identity_uid); + if (source) { + if (g_strcmp0 (e_source_get_parent (source), active_id) == 0) { + g_object_unref (source); + gtk_combo_box_set_active_id (combo_box, identity_uid); + g_free (identity_uid); + break; + } + g_object_unref (source); + } + + g_free (identity_uid); + } + } while (gtk_tree_model_iter_next (model, &iter)); + } + } } diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index 0fc5f2f475..777b7e7423 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -575,8 +575,8 @@ build_message_headers (EMsgComposer *composer, camel_mime_message_set_from (message, addr); g_object_unref (addr); - /* X-Evolution-Account */ - header_name = "X-Evolution-Account"; + /* X-Evolution-Identity */ + header_name = "X-Evolution-Identity"; camel_medium_set_header (medium, header_name, uid); /* X-Evolution-Fcc */ @@ -3108,6 +3108,11 @@ e_msg_composer_new_with_message (EShell *shell, /* Restore the mail identity preference. */ identity_uid = (gchar *) camel_medium_get_header ( CAMEL_MEDIUM (message), "X-Evolution-Identity"); + if (!identity_uid) { + /* for backward compatibility */ + identity_uid = (gchar *) camel_medium_get_header ( + CAMEL_MEDIUM (message), "X-Evolution-Account"); + } if (identity_uid != NULL) { identity_uid = g_strstrip (g_strdup (identity_uid)); source = e_source_registry_ref_source (registry, identity_uid); |