[evolution/wip/webkit2] EHTMLEditorView - History for Delete could not be saved



commit a7518b5c4a506106c4f357e0764451a5505f488e
Author: Tomas Popela <tpopela redhat com>
Date:   Tue Mar 1 11:04:19 2016 +0100

    EHTMLEditorView - History for Delete could not be saved

 .../composer/e-html-editor-view-dom-functions.c    |   28 +++++++++++++++----
 1 files changed, 22 insertions(+), 6 deletions(-)
---
diff --git a/web-extensions/composer/e-html-editor-view-dom-functions.c 
b/web-extensions/composer/e-html-editor-view-dom-functions.c
index 1c40743..30c68b8 100644
--- a/web-extensions/composer/e-html-editor-view-dom-functions.c
+++ b/web-extensions/composer/e-html-editor-view-dom-functions.c
@@ -7474,12 +7474,28 @@ save_history_for_delete_or_backspace (WebKitDOMDocument *document,
                        g_object_unref (tmp_range);
                } else {
                        if (delete_key) {
-                               glong offset = webkit_dom_range_get_start_offset (range_clone, NULL);
-                               webkit_dom_range_set_end (
-                                       range_clone,
-                                       webkit_dom_range_get_end_container (range_clone, NULL),
-                                       offset + 1,
-                                       NULL);
+                               WebKitDOMNode *container, *next_sibling;
+
+                               container = webkit_dom_range_get_end_container (range_clone, NULL);
+                               next_sibling = webkit_dom_node_get_next_sibling (container);
+
+                               if (dom_is_selection_position_node (next_sibling)) {
+                                       WebKitDOMNode *next_node;
+
+                                       next_node = webkit_dom_node_get_next_sibling (
+                                               webkit_dom_node_get_next_sibling (next_sibling));
+                                       webkit_dom_range_set_start (
+                                               range_clone, next_node, 0, NULL);
+                                       webkit_dom_range_set_end (
+                                               range_clone, next_node, 1, NULL);
+                               } else {
+                                       glong offset;
+
+                                       offset = webkit_dom_range_get_start_offset (range_clone, NULL);
+
+                                       webkit_dom_range_set_end (
+                                               range_clone, container, offset + 1, NULL);
+                               }
                        } else {
                                webkit_dom_range_set_start (
                                        range_clone,


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