[evolution/gnome-40] I#1460 - Don't put signature above original message when editing sent mail as new



commit e6b370d784ddc30a630974d5a8c9195522e8e1b3
Author: Milan Crha <mcrha redhat com>
Date:   Wed Apr 21 11:37:43 2021 +0200

    I#1460 - Don't put signature above original message when editing sent mail as new
    
    Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/1460

 src/composer/e-msg-composer.c  | 11 +++++++++--
 src/mail/e-mail-reader-utils.c |  1 +
 2 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/src/composer/e-msg-composer.c b/src/composer/e-msg-composer.c
index b39f7ec829..492170e7b1 100644
--- a/src/composer/e-msg-composer.c
+++ b/src/composer/e-msg-composer.c
@@ -1850,7 +1850,9 @@ msg_composer_mail_identity_changed_cb (EMsgComposer *composer)
        /* Silently return if no identity is selected. */
        if (!uid) {
                e_content_editor_set_start_bottom (cnt_editor, E_THREE_STATE_INCONSISTENT);
-               e_content_editor_set_top_signature (cnt_editor, E_THREE_STATE_INCONSISTENT);
+               e_content_editor_set_top_signature (cnt_editor,
+                       e_msg_composer_get_is_reply_or_forward (composer) ? E_THREE_STATE_INCONSISTENT :
+                       E_THREE_STATE_OFF);
 
                g_free (alias_name);
                g_free (alias_address);
@@ -1866,7 +1868,8 @@ msg_composer_mail_identity_changed_cb (EMsgComposer *composer)
        e_content_editor_set_start_bottom (cnt_editor,
                e_source_mail_composition_get_start_bottom (mc));
        e_content_editor_set_top_signature (cnt_editor,
-               e_source_mail_composition_get_top_signature (mc));
+               e_msg_composer_get_is_reply_or_forward (composer) ? 
e_source_mail_composition_get_top_signature (mc) :
+               E_THREE_STATE_OFF);
 
        extension_name = E_SOURCE_EXTENSION_OPENPGP;
        pgp = e_source_get_extension (source, extension_name);
@@ -3771,6 +3774,10 @@ e_msg_composer_setup_with_message (EMsgComposer *composer,
        editor = e_msg_composer_get_editor (composer);
        cnt_editor = e_html_editor_get_content_editor (editor);
 
+       /* Editing message as new, then keep the signature always below the original message */
+       if (keep_signature && !e_msg_composer_get_is_reply_or_forward (composer))
+               e_content_editor_set_top_signature (cnt_editor, E_THREE_STATE_OFF);
+
        if (postto) {
                e_composer_header_table_set_post_to_list (table, postto);
                g_list_foreach (postto, (GFunc) g_free, NULL);
diff --git a/src/mail/e-mail-reader-utils.c b/src/mail/e-mail-reader-utils.c
index ced107b7fd..b15001e277 100644
--- a/src/mail/e-mail-reader-utils.c
+++ b/src/mail/e-mail-reader-utils.c
@@ -2048,6 +2048,7 @@ mail_reader_edit_messages_cb (GObject *source_object,
                ccd->reader = g_object_ref (async_context->reader);
                ccd->folder = g_object_ref (folder);
                ccd->message = g_object_ref (CAMEL_MIME_MESSAGE (value));
+               ccd->keep_signature = async_context->keep_signature;
 
                if (async_context->replace)
                        ccd->message_uid = camel_pstring_strdup ((const gchar *) key);


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