diff options
author | Dan Winship <danw@src.gnome.org> | 2000-08-30 02:44:47 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2000-08-30 02:44:47 +0800 |
commit | ba2eaa68b17882b0fec2eac160f674d29598795f (patch) | |
tree | f97a4baff35c94b5263ac9b8c1a38f7219172b0b /mail/mail-callbacks.c | |
parent | ec4ed21ea96f66ccd4b2c29f4f14046f8ece8a56 (diff) | |
download | gsoc2013-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.c | 32 |
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)); } |