[evolution] Remember source message information when re-editing in Drafts or Outbox



commit 1a78f9c7a6a759ec2301eafe6cfba1be57a96d88
Author: Milan Crha <mcrha redhat com>
Date:   Thu Jun 20 21:58:06 2019 +0200

    Remember source message information when re-editing in Drafts or Outbox
    
    When a user saved a reply/forward message into Drafts and returned back
    to it later the composed message lost an information about the source
    message, thus when finally sent, the source message wasn't marked as
    replied to or forwarded. Similarly when re-editing in the Outbox folder.
    This is fixed by preserving related headers in the composer when
    opening an existing message in either of the two folders.

 src/mail/em-composer-utils.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
---
diff --git a/src/mail/em-composer-utils.c b/src/mail/em-composer-utils.c
index 9dfc36027e..5270621efa 100644
--- a/src/mail/em-composer-utils.c
+++ b/src/mail/em-composer-utils.c
@@ -2226,6 +2226,28 @@ em_utils_edit_message (EMsgComposer *composer,
                }
        }
 
+       /* Remember the source message headers when re-editing in Drafts or Outbox,
+          thus Reply, Forward and such mark the source message properly. Do this
+          before the setup_with_message(), because it modifies the message headers. */
+       if (folder_is_drafts || folder_is_outbox) {
+               CamelMedium *medium;
+               const gchar *hdr_folder;
+               const gchar *hdr_message;
+               const gchar *hdr_flags;
+
+               medium = CAMEL_MEDIUM (message);
+
+               hdr_folder = camel_medium_get_header (medium, "X-Evolution-Source-Folder");
+               hdr_message = camel_medium_get_header (medium, "X-Evolution-Source-Message");
+               hdr_flags = camel_medium_get_header (medium, "X-Evolution-Source-Flags");
+
+               if (hdr_folder && hdr_message && hdr_flags) {
+                       e_msg_composer_set_header (composer, "X-Evolution-Source-Folder", hdr_folder);
+                       e_msg_composer_set_header (composer, "X-Evolution-Source-Message", hdr_message);
+                       e_msg_composer_set_header (composer, "X-Evolution-Source-Flags", hdr_flags);
+               }
+       }
+
        e_msg_composer_setup_with_message (composer, message, keep_signature, override_identity_uid, 
override_alias_name, override_alias_address, NULL);
 
        g_free (override_identity_uid);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]