diff options
author | Yan Li <yanli@infradead.org> | 2009-11-05 11:50:34 +0800 |
---|---|---|
committer | Yan Li <yanli@infradead.org> | 2009-11-05 11:50:34 +0800 |
commit | df1f9b3b33de886c5b9a63b0ee6e722bfea4b2e0 (patch) | |
tree | e5d12251978944e33a477d8d818c4f7feb96b7e8 | |
parent | ca509c991bdf8009f1e359d5b283788bb7f94cc5 (diff) | |
download | gsoc2013-evolution-df1f9b3b33de886c5b9a63b0ee6e722bfea4b2e0.tar.gz gsoc2013-evolution-df1f9b3b33de886c5b9a63b0ee6e722bfea4b2e0.tar.zst gsoc2013-evolution-df1f9b3b33de886c5b9a63b0ee6e722bfea4b2e0.zip |
Bug #596027: In Anjal, although invalid mail address warning popup, mail's tab closed automatically
A new field "mail_sent" is added to the Composer to indicate whether the
mail is sent successfully or not. This is needed by Anjal to know
whether it can destroy the composer or not.
-rw-r--r-- | composer/e-composer-private.c | 4 | ||||
-rw-r--r-- | composer/e-composer-private.h | 9 | ||||
-rw-r--r-- | composer/e-msg-composer.c | 14 | ||||
-rw-r--r-- | composer/e-msg-composer.h | 3 | ||||
-rw-r--r-- | mail/em-composer-utils.c | 3 |
5 files changed, 33 insertions, 0 deletions
diff --git a/composer/e-composer-private.c b/composer/e-composer-private.c index 88a9454f45..0ec579fa0e 100644 --- a/composer/e-composer-private.c +++ b/composer/e-composer-private.c @@ -1,3 +1,5 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + /* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -276,6 +278,8 @@ e_composer_private_init (EMsgComposer *composer) header, "visible", action, "active"); } + + priv->mail_sent = FALSE; } void diff --git a/composer/e-composer-private.h b/composer/e-composer-private.h index 3288f0bcca..71ced95df1 100644 --- a/composer/e-composer-private.h +++ b/composer/e-composer-private.h @@ -1,3 +1,5 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + /* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -114,6 +116,13 @@ struct _EMsgComposerPrivate { CamelMimeMessage *redirect; gboolean is_from_message; + + /* The mail composed has been sent. This bit will be set when + the mail passed sanity checking and is sent out, which + indicates that the composer can be destroyed. This bit can + be set/get by using API + e_msg_composer_{set,get}_mail_sent(). */ + gboolean mail_sent; }; void e_composer_private_init (EMsgComposer *composer); diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index 7bf67a4fb8..ffd81a010d 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -4165,3 +4165,17 @@ e_save_spell_languages (GList *spell_languages) g_error_free (error); } } + +void e_msg_composer_set_mail_sent (EMsgComposer *composer, gboolean mail_sent) +{ + g_return_val_if_fail (composer != NULL, FALSE); + + composer->priv->mail_sent = mail_sent; +} + +gboolean e_msg_composer_get_mail_sent (EMsgComposer *composer) +{ + g_return_val_if_fail (composer != NULL, FALSE); + + return composer->priv->mail_sent; +} diff --git a/composer/e-msg-composer.h b/composer/e-msg-composer.h index ab30093294..e0d118b4f4 100644 --- a/composer/e-msg-composer.h +++ b/composer/e-msg-composer.h @@ -151,6 +151,9 @@ GByteArray * e_msg_composer_get_raw_message_text GList * e_load_spell_languages (void); void e_save_spell_languages (GList *spell_languages); +void e_msg_composer_set_mail_sent (EMsgComposer *composer, gboolean mail_sent); +gboolean e_msg_composer_get_mail_sent (EMsgComposer *composer); + G_END_DECLS #endif /* E_MSG_COMPOSER_H */ diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c index f03a66d7f5..60b795a2e1 100644 --- a/mail/em-composer-utils.c +++ b/mail/em-composer-utils.c @@ -1,3 +1,5 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + /* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -469,6 +471,7 @@ em_utils_composer_send_cb (EMsgComposer *composer) camel_object_ref (folder); /* mail the message */ + e_msg_composer_set_mail_sent (composer, TRUE); info = camel_message_info_new (NULL); camel_message_info_set_flags (info, CAMEL_MESSAGE_SEEN, ~0); |