[evolution/wip/webkit2] EHTMLEditorSelection - Replace active selection when inserting inline image into composer



commit c1ef300f8f390ef1991bff934f3fc990c1fdf97d
Author: Tomas Popela <tpopela redhat com>
Date:   Tue Mar 24 12:49:04 2015 +0100

    EHTMLEditorSelection - Replace active selection when inserting inline image into composer
    
    Also refresh the spell check as it could be lost during the operation.

 .../e-html-editor-selection-dom-functions.c        |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)
---
diff --git a/web-extensions/e-html-editor-selection-dom-functions.c 
b/web-extensions/e-html-editor-selection-dom-functions.c
index fc14571..844b69f 100644
--- a/web-extensions/e-html-editor-selection-dom-functions.c
+++ b/web-extensions/e-html-editor-selection-dom-functions.c
@@ -341,10 +341,15 @@ dom_insert_base64_image (WebKitDOMDocument *document,
                          const gchar *uri,
                          const gchar *base64_content)
 {
-       WebKitDOMElement *element, *caret_position, *resizable_wrapper;
+       WebKitDOMElement *element, *selection_start_marker, *resizable_wrapper;
        WebKitDOMText *text;
 
-       caret_position = dom_save_caret_position (document);
+       if (!dom_selection_is_collapsed (document))
+               dom_exec_command (document, E_HTML_EDITOR_VIEW_COMMAND_DELETE, NULL);
+
+       dom_selection_save (document);
+       selection_start_marker = webkit_dom_document_query_selector (
+               document, "span#-x-evo-selection-start-marker", NULL);
 
        resizable_wrapper =
                webkit_dom_document_create_element (document, "span", NULL);
@@ -369,9 +374,9 @@ dom_insert_base64_image (WebKitDOMDocument *document,
 
        webkit_dom_node_insert_before (
                webkit_dom_node_get_parent_node (
-                       WEBKIT_DOM_NODE (caret_position)),
+                       WEBKIT_DOM_NODE (selection_start_marker)),
                WEBKIT_DOM_NODE (resizable_wrapper),
-               WEBKIT_DOM_NODE (caret_position),
+               WEBKIT_DOM_NODE (selection_start_marker),
                NULL);
 
        /* We have to again use UNICODE_ZERO_WIDTH_SPACE character to restore
@@ -381,12 +386,13 @@ dom_insert_base64_image (WebKitDOMDocument *document,
 
        webkit_dom_node_insert_before (
                webkit_dom_node_get_parent_node (
-                       WEBKIT_DOM_NODE (caret_position)),
+                       WEBKIT_DOM_NODE (selection_start_marker)),
                WEBKIT_DOM_NODE (text),
-               WEBKIT_DOM_NODE (caret_position),
+               WEBKIT_DOM_NODE (selection_start_marker),
                NULL);
 
-       dom_restore_caret_position (document);
+       dom_selection_restore (document);
+       dom_force_spell_check (document, extension);
 }
 
 /**


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