[evolution/webkit-composer: 180/181] e_editor_selection_save: Gracefully handle no WebKitDOMRange.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/webkit-composer: 180/181] e_editor_selection_save: Gracefully handle no WebKitDOMRange.
- Date: Sun, 10 Feb 2013 12:23:37 +0000 (UTC)
commit 014d9705cecd95630a58f0c807832ab2eeadf4a5
Author: Matthew Barnes <mbarnes redhat com>
Date: Fri Feb 8 19:43:37 2013 -0500
e_editor_selection_save: Gracefully handle no WebKitDOMRange.
Avoid runtime warnings during composer initialization.
e-util/e-editor-selection.c | 85 +++++++++++++++++++++++--------------------
1 files changed, 46 insertions(+), 39 deletions(-)
---
diff --git a/e-util/e-editor-selection.c b/e-util/e-editor-selection.c
index 60edcc7..5df55cc 100644
--- a/e-util/e-editor-selection.c
+++ b/e-util/e-editor-selection.c
@@ -2345,10 +2345,6 @@ e_editor_selection_save (EEditorSelection *selection)
WebKitDOMRange *range;
WebKitDOMNode *container;
WebKitDOMElement *marker;
- WebKitDOMNode *marker_node;
- WebKitDOMNode *parent_node;
- WebKitDOMNode *split_node;
- glong start_offset;
g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
@@ -2384,51 +2380,62 @@ e_editor_selection_save (EEditorSelection *selection)
range = editor_selection_get_current_range (selection);
- start_offset = webkit_dom_range_get_start_offset (range, NULL);
+ if (range != NULL) {
+ WebKitDOMNode *marker_node;
+ WebKitDOMNode *parent_node;
+ WebKitDOMNode *split_node;
+ glong start_offset;
- marker = webkit_dom_document_create_element (document, "SPAN", NULL);
- webkit_dom_html_element_set_id (
- WEBKIT_DOM_HTML_ELEMENT (marker),
- "-x-evolution-selection-start-marker");
+ start_offset = webkit_dom_range_get_start_offset (range, NULL);
- container = webkit_dom_range_get_start_container (range, NULL);
- if (WEBKIT_DOM_IS_TEXT (container)) {
- WebKitDOMText *split_text;
+ marker = webkit_dom_document_create_element (
+ document, "SPAN", NULL);
+ webkit_dom_html_element_set_id (
+ WEBKIT_DOM_HTML_ELEMENT (marker),
+ "-x-evolution-selection-start-marker");
- split_text = webkit_dom_text_split_text (
- WEBKIT_DOM_TEXT (container), start_offset, NULL);
- split_node = WEBKIT_DOM_NODE (split_text);
- } else {
- split_node = container;
- }
+ container = webkit_dom_range_get_start_container (range, NULL);
+ if (WEBKIT_DOM_IS_TEXT (container)) {
+ WebKitDOMText *split_text;
- marker_node = WEBKIT_DOM_NODE (marker);
- parent_node = webkit_dom_node_get_parent_node (container);
+ split_text = webkit_dom_text_split_text (
+ WEBKIT_DOM_TEXT (container),
+ start_offset, NULL);
+ split_node = WEBKIT_DOM_NODE (split_text);
+ } else {
+ split_node = container;
+ }
- webkit_dom_node_insert_before (
- parent_node, marker_node, split_node, NULL);
+ marker_node = WEBKIT_DOM_NODE (marker);
+ parent_node = webkit_dom_node_get_parent_node (container);
- marker = webkit_dom_document_create_element (document, "SPAN", NULL);
- webkit_dom_html_element_set_id (
- WEBKIT_DOM_HTML_ELEMENT (marker),
- "-x-evolution-selection-end-marker");
+ webkit_dom_node_insert_before (
+ parent_node, marker_node, split_node, NULL);
- container = webkit_dom_range_get_end_container (range, NULL);
- if (WEBKIT_DOM_IS_TEXT (container)) {
- WebKitDOMText *split_text;
+ marker = webkit_dom_document_create_element (
+ document, "SPAN", NULL);
+ webkit_dom_html_element_set_id (
+ WEBKIT_DOM_HTML_ELEMENT (marker),
+ "-x-evolution-selection-end-marker");
- split_text = webkit_dom_text_split_text (
- WEBKIT_DOM_TEXT (container), start_offset, NULL);
- split_node = WEBKIT_DOM_NODE (split_text);
- } else {
- split_node = container;
- }
+ container = webkit_dom_range_get_end_container (range, NULL);
+ if (WEBKIT_DOM_IS_TEXT (container)) {
+ WebKitDOMText *split_text;
- marker_node = WEBKIT_DOM_NODE (marker);
- parent_node = webkit_dom_node_get_parent_node (container);
+ split_text = webkit_dom_text_split_text (
+ WEBKIT_DOM_TEXT (container),
+ start_offset, NULL);
+ split_node = WEBKIT_DOM_NODE (split_text);
+ } else {
+ split_node = container;
+ }
+
+ marker_node = WEBKIT_DOM_NODE (marker);
+ parent_node = webkit_dom_node_get_parent_node (container);
- webkit_dom_node_insert_before (
- parent_node, marker_node, split_node, NULL);
+ webkit_dom_node_insert_before (
+ parent_node, marker_node, split_node, NULL);
+ }
g_object_unref (editor_widget);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]