* src/messageview.c
[claws.git] / src / messageview.c
index 353ba8a5266eccc4ea645d3196d3460963813cc2..53a8c53f01e55bff5e025bd57c966b8758362b59 100644 (file)
@@ -517,7 +517,7 @@ static gint disposition_notification_queue(PrefsAccount * account,
        }
 
        queue = folder_get_default_queue();
-       if ((num = folder_item_add_msg(queue, tmp, TRUE)) < 0) {
+       if ((num = folder_item_add_msg(queue, tmp, NULL, TRUE)) < 0) {
                g_warning("can't queue the message\n");
                unlink(tmp);
                g_free(tmp);
@@ -575,6 +575,7 @@ static gint disposition_notification_send(MsgInfo *msginfo)
                                   "receipt."), to, buf);
                val = alertpanel(_("Warning"), message, _("Send"),
                                _("+Don't Send"), NULL);
+               g_free(message);                                
                if (val != G_ALERTDEFAULT)
                        return -1;
        }
@@ -710,7 +711,9 @@ void messageview_show(MessageView *messageview, MsgInfo *msginfo,
                procmime_mimeinfo_free_all(mimeinfo);
        }
 
-       if (MSG_IS_RETRCPT_PENDING(messageview->msginfo->flags))
+       if ((messageview->msginfo->dispositionnotificationto || 
+            messageview->msginfo->returnreceiptto) &&
+           !MSG_IS_RETRCPT_SENT(messageview->msginfo->flags))
                return_receipt_show(messageview->noticeview, messageview->msginfo);
        else 
                noticeview_hide(messageview->noticeview);
@@ -805,7 +808,6 @@ void messageview_destroy(MessageView *messageview)
 void messageview_delete(MessageView *msgview)
 {
        MsgInfo *msginfo = (MsgInfo*)msgview->msginfo;
-       SummaryView *summaryview = (SummaryView*)msgview->mainwin->summaryview;
        FolderItem *trash = folder_get_default_trash();
        GSList *msg_list;
 
@@ -1077,7 +1079,7 @@ static void return_receipt_send_clicked(NoticeView *noticeview, MsgInfo *msginfo
        tmpmsginfo->msgnum = msginfo->msgnum;
 
        if (disposition_notification_send(tmpmsginfo) >= 0) {
-               procmsg_msginfo_unset_flags(msginfo, MSG_RETRCPT_PENDING, 0);
+               procmsg_msginfo_set_flags(msginfo, MSG_RETRCPT_SENT, 0);
                noticeview_hide(noticeview);
        }