[evolution] Bug 778062 - Keep signatures above only when replying



commit 1c8786fbd5183b7e71677d8092146523496b362c
Author: Milan Crha <mcrha redhat com>
Date:   Tue Feb 7 17:46:49 2017 +0100

    Bug 778062 - Keep signatures above only when replying

 .../web-extension/e-composer-dom-functions.c       |    4 ++--
 .../web-extension/e-editor-dom-functions.c         |    2 ++
 .../webkit-editor/web-extension/e-editor-page.c    |   19 +++++++++++++++++++
 .../webkit-editor/web-extension/e-editor-page.h    |    6 ++++++
 4 files changed, 29 insertions(+), 2 deletions(-)
---
diff --git a/src/modules/webkit-editor/web-extension/e-composer-dom-functions.c 
b/src/modules/webkit-editor/web-extension/e-composer-dom-functions.c
index 4a6ab9e..a200680 100644
--- a/src/modules/webkit-editor/web-extension/e-composer-dom-functions.c
+++ b/src/modules/webkit-editor/web-extension/e-composer-dom-functions.c
@@ -102,7 +102,7 @@ move_caret_after_signature_inserted (EEditorPage *editor_page)
 
        document = e_editor_page_get_document (editor_page);
 
-       top_signature = use_top_signature ();
+       top_signature = e_editor_page_get_allow_top_signature (editor_page) && use_top_signature ();
        start_bottom = start_typing_at_bottom ();
 
        body = webkit_dom_document_get_body (document);
@@ -286,7 +286,7 @@ e_composer_dom_insert_signature (EEditorPage *editor_page,
 
        /* "Edit as New Message" sets is_message_from_edit_as_new.
         * Always put the signature at the bottom for that case. */
-       top_signature = use_top_signature ();
+       top_signature = e_editor_page_get_allow_top_signature (editor_page) && use_top_signature ();
 
        html_mode = e_editor_page_get_html_mode (editor_page);
 
diff --git a/src/modules/webkit-editor/web-extension/e-editor-dom-functions.c 
b/src/modules/webkit-editor/web-extension/e-editor-dom-functions.c
index 3bb2aa7..7652583 100644
--- a/src/modules/webkit-editor/web-extension/e-editor-dom-functions.c
+++ b/src/modules/webkit-editor/web-extension/e-editor-dom-functions.c
@@ -1366,6 +1366,7 @@ move_elements_to_body (EEditorPage *editor_page)
 
        list = webkit_dom_document_query_selector_all (
                document, "span.-x-evo-to-body[data-credits]", NULL);
+       e_editor_page_set_allow_top_signature (editor_page, webkit_dom_node_list_get_length (list) > 0);
        for (jj = 0, ii = webkit_dom_node_list_get_length (list); ii--; jj++) {
                char *credits;
                WebKitDOMElement *element;
@@ -5821,6 +5822,7 @@ e_editor_dom_convert_content (EEditorPage *editor_page,
        /* Move credits to the body */
        list = webkit_dom_document_query_selector_all (
                document, "span.-x-evo-to-body[data-credits]", NULL);
+       e_editor_page_set_allow_top_signature (editor_page, webkit_dom_node_list_get_length (list) > 0);
        for (jj = 0, ii = webkit_dom_node_list_get_length (list); ii--; jj++) {
                char *credits;
                WebKitDOMElement *element;
diff --git a/src/modules/webkit-editor/web-extension/e-editor-page.c 
b/src/modules/webkit-editor/web-extension/e-editor-page.c
index c3f1725..9da8b8c 100644
--- a/src/modules/webkit-editor/web-extension/e-editor-page.c
+++ b/src/modules/webkit-editor/web-extension/e-editor-page.c
@@ -61,6 +61,7 @@ struct _EEditorPagePrivate {
        gboolean composition_in_progress;
        gboolean pasting_content_from_itself;
        gboolean renew_history_after_coordinates;
+       gboolean allow_top_signature;
 
        GHashTable *inline_images;
 
@@ -252,6 +253,7 @@ e_editor_page_init (EEditorPage *editor_page)
        editor_page->priv->pasting_content_from_itself = FALSE;
        editor_page->priv->composition_in_progress = FALSE;
        editor_page->priv->renew_history_after_coordinates = TRUE;
+       editor_page->priv->allow_top_signature = FALSE;
        editor_page->priv->spell_check_on_scroll_event_source_id = 0;
        editor_page->priv->mail_settings = e_util_ref_settings ("org.gnome.evolution.mail");
        editor_page->priv->word_wrap_length = g_settings_get_int (editor_page->priv->mail_settings, 
"composer-word-wrap-length");
@@ -780,6 +782,23 @@ e_editor_page_set_composition_in_progress (EEditorPage *editor_page,
        editor_page->priv->composition_in_progress = value;
 }
 
+gboolean
+e_editor_page_get_allow_top_signature (EEditorPage *editor_page)
+{
+       g_return_val_if_fail (E_IS_EDITOR_PAGE (editor_page), FALSE);
+
+       return editor_page->priv->allow_top_signature;
+}
+
+void
+e_editor_page_set_allow_top_signature (EEditorPage *editor_page,
+                                      gboolean value)
+{
+       g_return_if_fail (E_IS_EDITOR_PAGE (editor_page));
+
+       editor_page->priv->allow_top_signature = value;
+}
+
 guint
 e_editor_page_get_spell_check_on_scroll_event_source_id (EEditorPage *editor_page)
 {
diff --git a/src/modules/webkit-editor/web-extension/e-editor-page.h 
b/src/modules/webkit-editor/web-extension/e-editor-page.h
index f3cc7ac..201fb53 100644
--- a/src/modules/webkit-editor/web-extension/e-editor-page.h
+++ b/src/modules/webkit-editor/web-extension/e-editor-page.h
@@ -178,6 +178,11 @@ gboolean   e_editor_page_is_composition_in_progress
 void           e_editor_page_set_composition_in_progress
                                                (EEditorPage *editor_page,
                                                 gboolean value);
+gboolean       e_editor_page_get_allow_top_signature
+                                               (EEditorPage *editor_page);
+void           e_editor_page_set_allow_top_signature
+                                               (EEditorPage *editor_page,
+                                                gboolean value);
 guint          e_editor_page_get_spell_check_on_scroll_event_source_id
                                                (EEditorPage *editor_page);
 void           e_editor_page_set_spell_check_on_scroll_event_source_id
@@ -195,6 +200,7 @@ void                e_editor_page_emit_undo_redo_state_changed
 void           e_editor_page_emit_user_changed_default_colors
                                                (EEditorPage *editor_page,
                                                 gboolean suppress_color_changes);
+
 G_END_DECLS
 
 #endif /* E_EDITOR_PAGE_H */


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