[evolution/wip/webkit2] EHTMLEditorSelection - Current block format is wrong for nested lists



commit 25cbde6facd524f043f9f7ef3f5f9b704edb829d
Author: Tomas Popela <tpopela redhat com>
Date:   Fri Feb 26 08:57:54 2016 +0100

    EHTMLEditorSelection - Current block format is wrong for nested lists

 .../e-html-editor-selection-dom-functions.c        |   24 +++++++++++++++++--
 1 files changed, 21 insertions(+), 3 deletions(-)
---
diff --git a/web-extensions/composer/e-html-editor-selection-dom-functions.c 
b/web-extensions/composer/e-html-editor-selection-dom-functions.c
index ba530b3..156e96c 100644
--- a/web-extensions/composer/e-html-editor-selection-dom-functions.c
+++ b/web-extensions/composer/e-html-editor-selection-dom-functions.c
@@ -4535,10 +4535,28 @@ dom_selection_get_block_format (WebKitDOMDocument *document,
 
        node = webkit_dom_range_get_start_container (range, NULL);
 
-       if (dom_node_find_parent_element (node, "UL")) {
-               result = E_HTML_EDITOR_SELECTION_BLOCK_FORMAT_UNORDERED_LIST;
+       if ((element = dom_node_find_parent_element (node, "UL"))) {
+               WebKitDOMElement *tmp_element;
+
+               tmp_element = dom_node_find_parent_element (node, "OL");
+               if (tmp_element) {
+                       if (webkit_dom_node_contains (WEBKIT_DOM_NODE (tmp_element), WEBKIT_DOM_NODE 
(element))) 
+                               result = dom_get_list_format_from_node (WEBKIT_DOM_NODE (element));
+                       else
+                               result = dom_get_list_format_from_node (WEBKIT_DOM_NODE (tmp_element));
+               } else
+                       result = E_HTML_EDITOR_SELECTION_BLOCK_FORMAT_UNORDERED_LIST;
        } else if ((element = dom_node_find_parent_element (node, "OL")) != NULL) {
-               result = dom_get_list_format_from_node (WEBKIT_DOM_NODE (element));
+               WebKitDOMElement *tmp_element;
+
+               tmp_element = dom_node_find_parent_element (node, "UL");
+               if (tmp_element) {
+                       if (webkit_dom_node_contains (WEBKIT_DOM_NODE (element), WEBKIT_DOM_NODE 
(tmp_element))) 
+                               result = dom_get_list_format_from_node (WEBKIT_DOM_NODE (element));
+                       else
+                               result = dom_get_list_format_from_node (WEBKIT_DOM_NODE (tmp_element));
+               } else
+                       result = E_HTML_EDITOR_SELECTION_BLOCK_FORMAT_ORDERED_LIST;
        } else if (dom_node_find_parent_element (node, "PRE")) {
                result = E_HTML_EDITOR_SELECTION_BLOCK_FORMAT_PRE;
        } else if (dom_node_find_parent_element (node, "ADDRESS")) {


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