diff options
Diffstat (limited to 'e-util/e-html-editor-selection.c')
-rw-r--r-- | e-util/e-html-editor-selection.c | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/e-util/e-html-editor-selection.c b/e-util/e-html-editor-selection.c index a47fcf94ee..2c50d13caf 100644 --- a/e-util/e-html-editor-selection.c +++ b/e-util/e-html-editor-selection.c @@ -917,6 +917,8 @@ e_html_editor_selection_has_text (EHTMLEditorSelection *selection) } } + g_object_unref (node); + return FALSE; } @@ -1272,6 +1274,7 @@ format_change_list_from_list (EHTMLEditorSelection *selection, } if (webkit_dom_node_contains (item, WEBKIT_DOM_NODE (selection_end_marker))) { + g_object_unref (source_list_clone); source_list_clone = webkit_dom_node_clone_node (current_list, FALSE); after_selection_end = TRUE; } @@ -1659,6 +1662,8 @@ remove_wrapping_from_element (WebKitDOMElement *element) remove_node (webkit_dom_node_list_item (list, ii)); webkit_dom_node_normalize (WEBKIT_DOM_NODE (element)); + + g_object_unref (list); } void @@ -1672,6 +1677,7 @@ remove_quoting_from_element (WebKitDOMElement *element) length = webkit_dom_node_list_get_length (list); for (ii = 0; ii < length; ii++) remove_node (webkit_dom_node_list_item (list, ii)); + g_object_unref (list); list = webkit_dom_element_query_selector_all ( element, "span.-x-evo-temp-text-wrapper", NULL); @@ -1689,12 +1695,14 @@ remove_quoting_from_element (WebKitDOMElement *element) remove_node (node); } + g_object_unref (list); list = webkit_dom_element_query_selector_all ( element, "br.-x-evo-temp-br", NULL); length = webkit_dom_node_list_get_length (list); for (ii = 0; ii < length; ii++) remove_node (webkit_dom_node_list_item (list, ii)); + g_object_unref (list); webkit_dom_node_normalize (WEBKIT_DOM_NODE (element)); } @@ -2592,14 +2600,18 @@ e_html_editor_selection_is_indented (EHTMLEditorSelection *selection) fragment = webkit_dom_range_clone_contents (range, NULL); if (fragment) { + gboolean ret_val = TRUE; + element = webkit_dom_document_fragment_query_selector ( fragment, ".-x-evo-indented", NULL); - if (element) - return TRUE; + if (!element) { + element = get_element_for_inspection (range); + ret_val = element_has_class (element, "-x-evo-indented"); + } - element = get_element_for_inspection (range); - return element_has_class (element, "-x-evo-indented"); + g_object_unref (fragment); + return ret_val; } } @@ -2862,6 +2874,8 @@ e_html_editor_selection_indent (EHTMLEditorSelection *selection) goto out; } + g_object_unref (list); + block = next_block; } out: @@ -3182,6 +3196,7 @@ e_html_editor_selection_unindent (EHTMLEditorSelection *selection) if (after_selection_end) goto out; } + g_object_unref (list); block = next_block; } out: @@ -3563,12 +3578,13 @@ e_html_editor_selection_set_monospaced (EHTMLEditorSelection *selection, if (!e_html_editor_selection_is_collapsed (selection)) { gchar *html, *outer_html; + WebKitDOMNode *range_clone; + + range_clone = WEBKIT_DOM_NODE ( + webkit_dom_range_clone_contents (range, NULL)); webkit_dom_node_append_child ( - WEBKIT_DOM_NODE (monospace), - WEBKIT_DOM_NODE ( - webkit_dom_range_clone_contents (range, NULL)), - NULL); + WEBKIT_DOM_NODE (monospace), range_clone, NULL); outer_html = webkit_dom_html_element_get_outer_html ( WEBKIT_DOM_HTML_ELEMENT (monospace)); @@ -5032,6 +5048,7 @@ wrap_lines (EHTMLEditorSelection *selection, /* And remove them */ for (ii = 0; ii < br_count; ii++) remove_node (webkit_dom_node_list_item (wrap_br, ii)); + g_object_unref (wrap_br); } else { if (!webkit_dom_node_has_child_nodes (paragraph)) return WEBKIT_DOM_ELEMENT (paragraph); @@ -5687,6 +5704,7 @@ e_html_editor_selection_wrap_paragraphs_in_document (EHTMLEditorSelection *selec selection->priv->word_wrap_length - quote); } } + g_object_unref (list); } WebKitDOMElement * |