[evolution/gnome-3-22] History could be saved twice if inserting HTML content



commit 0cd1d29a7fb30fc9d50b1d4fa9338d70a55ad97b
Author: Tomas Popela <tpopela redhat com>
Date:   Thu Mar 9 12:01:08 2017 +0100

    History could be saved twice if inserting HTML content

 .../web-extension/e-editor-dom-functions.c         |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)
---
diff --git a/modules/webkit-editor/web-extension/e-editor-dom-functions.c 
b/modules/webkit-editor/web-extension/e-editor-dom-functions.c
index a66bbc1..b79ea50 100644
--- a/modules/webkit-editor/web-extension/e-editor-dom-functions.c
+++ b/modules/webkit-editor/web-extension/e-editor-dom-functions.c
@@ -8831,7 +8831,7 @@ e_editor_dom_insert_html (EEditorPage *editor_page,
 {
        EEditorHistoryEvent *ev = NULL;
        EEditorUndoRedoManager *manager;
-       gboolean html_mode;
+       gboolean html_mode, undo_redo_in_progress;
        WebKitDOMDocument *document;
        WebKitDOMNode *block = NULL;
 
@@ -8841,7 +8841,8 @@ e_editor_dom_insert_html (EEditorPage *editor_page,
        document = e_editor_page_get_document (editor_page);
 
        manager = e_editor_page_get_undo_redo_manager (editor_page);
-       if (!e_editor_undo_redo_manager_is_operation_in_progress (manager)) {
+       undo_redo_in_progress = e_editor_undo_redo_manager_is_operation_in_progress (manager);
+       if (!undo_redo_in_progress) {
                gboolean collapsed;
 
                ev = g_new0 (EEditorHistoryEvent, 1);
@@ -8967,8 +8968,14 @@ e_editor_dom_insert_html (EEditorPage *editor_page,
                e_editor_dom_check_magic_links (editor_page, FALSE);
                e_editor_dom_scroll_to_caret (editor_page);
                e_editor_dom_force_spell_check_in_viewport (editor_page);
-       } else
+       } else {
+               /* Don't save history in the underlying function. */
+               if (!undo_redo_in_progress)
+                       e_editor_undo_redo_manager_set_operation_in_progress (manager, TRUE);
                e_editor_dom_convert_and_insert_html_into_selection (editor_page, html_text, TRUE);
+               if (!undo_redo_in_progress)
+                       e_editor_undo_redo_manager_set_operation_in_progress (manager, FALSE);
+       }
 
        remove_apple_interchange_newline_elements (document);
 


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