aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-callbacks.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2000-08-30 02:44:47 +0800
committerDan Winship <danw@src.gnome.org>2000-08-30 02:44:47 +0800
commitba2eaa68b17882b0fec2eac160f674d29598795f (patch)
treef97a4baff35c94b5263ac9b8c1a38f7219172b0b /mail/mail-callbacks.c
parentec4ed21ea96f66ccd4b2c29f4f14046f8ece8a56 (diff)
downloadgsoc2013-evolution-ba2eaa68b17882b0fec2eac160f674d29598795f.tar
gsoc2013-evolution-ba2eaa68b17882b0fec2eac160f674d29598795f.tar.gz
gsoc2013-evolution-ba2eaa68b17882b0fec2eac160f674d29598795f.tar.bz2
gsoc2013-evolution-ba2eaa68b17882b0fec2eac160f674d29598795f.tar.lz
gsoc2013-evolution-ba2eaa68b17882b0fec2eac160f674d29598795f.tar.xz
gsoc2013-evolution-ba2eaa68b17882b0fec2eac160f674d29598795f.tar.zst
gsoc2013-evolution-ba2eaa68b17882b0fec2eac160f674d29598795f.zip
Update this and related functions to no longer take a From address. (The
* mail-ops.c (mail_do_send_mail): Update this and related functions to no longer take a From address. (The composer deals with it itself now.) (do_send_mail): Add the Evolution version back to the X-Mailer header (this change got lost in the thread migration). * mail-callbacks.c (composer_send_cb): Don't re-fetch the From address. It's set by the composer now. Don't free the post_send_data from here. (mail_reply): Attach to the composer's destroy signal to free the psd. (The current code would free it more than once if an error occurred while trying to send the first time.) svn path=/trunk/; revision=5102
Diffstat (limited to 'mail/mail-callbacks.c')
-rw-r--r--mail/mail-callbacks.c32
1 files changed, 6 insertions, 26 deletions
diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c
index f67557022b..970221eadf 100644
--- a/mail/mail-callbacks.c
+++ b/mail/mail-callbacks.c
@@ -195,10 +195,9 @@ ask_confirm_for_empty_subject (EMsgComposer *composer)
}
static void
-free_psd (struct post_send_data *psd)
+free_psd (GtkWidget *composer, gpointer user_data)
{
- if (!psd)
- return;
+ struct post_send_data *psd = user_data;
if (psd->folder)
camel_object_unref (CAMEL_OBJECT (psd->folder));
@@ -210,29 +209,14 @@ free_psd (struct post_send_data *psd)
void
composer_send_cb (EMsgComposer *composer, gpointer data)
{
- gchar *from = NULL;
- const MailConfigIdentity *id = NULL;
MailConfigService *xport = NULL;
CamelMimeMessage *message;
const char *subject;
struct post_send_data *psd = data;
/* Config info */
- id = mail_config_get_default_identity ();
xport = mail_config_get_transport ();
- /* Generate our from address */
- /* FIXME: we shouldn't need this code anymore as it's taken care of in the composer */
- from = e_msg_composer_hdrs_get_from (E_MSG_COMPOSER_HDRS (composer->hdrs));
- if (!from) {
- CamelInternetAddress *ciaddr;
-
- ciaddr = camel_internet_address_new ();
- camel_internet_address_add (ciaddr, id->name, id->address);
- from = camel_address_encode (CAMEL_ADDRESS (ciaddr));
- camel_object_unref (CAMEL_OBJECT (ciaddr));
- }
-
/* Get the message */
message = e_msg_composer_get_message (composer);
@@ -241,24 +225,18 @@ composer_send_cb (EMsgComposer *composer, gpointer data)
if (subject == NULL || subject[0] == '\0') {
if (!ask_confirm_for_empty_subject (composer)) {
camel_object_unref (CAMEL_OBJECT (message));
- free_psd (psd); /* will take care of psd == NULL */
return;
}
}
if (psd) {
- mail_do_send_mail (xport->url, message, from,
+ mail_do_send_mail (xport->url, message,
psd->folder, psd->uid, psd->flags,
GTK_WIDGET (composer));
} else {
- mail_do_send_mail (xport->url, message, from,
- NULL, NULL, 0,
+ mail_do_send_mail (xport->url, message, NULL, NULL, 0,
GTK_WIDGET (composer));
}
-
- g_free (from);
-
- free_psd (psd);
}
static GtkWidget *
@@ -341,6 +319,8 @@ mail_reply (CamelFolder *folder, CamelMimeMessage *msg, const char *uid, gboolea
gtk_signal_connect (GTK_OBJECT (composer), "send",
GTK_SIGNAL_FUNC (composer_send_cb), psd);
+ gtk_signal_connect (GTK_OBJECT (composer), "destroy",
+ GTK_SIGNAL_FUNC (free_psd), psd);
gtk_widget_show (GTK_WIDGET (composer));
}