diff options
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 16 | ||||
-rw-r--r-- | mail/em-composer-utils.c | 27 |
2 files changed, 32 insertions, 11 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 359083a65e..90dceba510 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,19 @@ +2009-05-06 Jeff Cai <jeff.cai@sun.com> + + ** Fix for bug #524497 + * em-composer-utils.c: (guess_account): + Change the order getting an account + + The original order is: + 1. The account in 'To' of the message. + 2. The account of the message source. + 3. The account of the folder source. + + The new order is: + 1. The account of the folder source. + 2. The account of the message source. + 3. The account in "To' of the message + 2009-04-28 Milan Crha <mcrha@redhat.com> ** Fix for bug #572348 diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c index 38f35d1b5b..0425645abe 100644 --- a/mail/em-composer-utils.c +++ b/mail/em-composer-utils.c @@ -1861,7 +1861,22 @@ guess_account (CamelMimeMessage *message, CamelFolder *folder) && (account = guess_account_folder(folder))) return account; - /* then recipient (to/cc) in account table */ + /* check for source folder */ + if (folder) { + account = guess_account_folder(folder); + if (account) + return account; + } + + /* then message source */ + if (account == NULL + && (tmp = camel_mime_message_get_source(message))) { + account = mail_config_get_account_by_source_url(tmp); + if (account) + return account; + } + + /* finally recipient (to/cc) in account table */ account_hash = generate_account_hash (); for (j=0;account == NULL && j<2;j++) { const CamelInternetAddress *to; @@ -1877,16 +1892,6 @@ guess_account (CamelMimeMessage *message, CamelFolder *folder) } g_hash_table_destroy(account_hash); - /* then message source */ - if (account == NULL - && (tmp = camel_mime_message_get_source(message))) - account = mail_config_get_account_by_source_url(tmp); - - /* and finally, source folder */ - if (account == NULL - && folder) - account = guess_account_folder(folder); - return account; } |