aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-web-view.c
diff options
context:
space:
mode:
authorTomas Popela <tpopela@redhat.com>2014-06-16 21:59:14 +0800
committerTomas Popela <tpopela@redhat.com>2014-06-16 21:59:14 +0800
commit4a12e23cab29df538eeec9b5f4d7dcf9a2f6cca0 (patch)
treecb0913a91a3fce77216d0ba3187600935212b724 /e-util/e-web-view.c
parentd2b05fd46bbc736466ae172c64bed727e3b889b8 (diff)
downloadgsoc2013-evolution-4a12e23cab29df538eeec9b5f4d7dcf9a2f6cca0.tar
gsoc2013-evolution-4a12e23cab29df538eeec9b5f4d7dcf9a2f6cca0.tar.gz
gsoc2013-evolution-4a12e23cab29df538eeec9b5f4d7dcf9a2f6cca0.tar.bz2
gsoc2013-evolution-4a12e23cab29df538eeec9b5f4d7dcf9a2f6cca0.tar.lz
gsoc2013-evolution-4a12e23cab29df538eeec9b5f4d7dcf9a2f6cca0.tar.xz
gsoc2013-evolution-4a12e23cab29df538eeec9b5f4d7dcf9a2f6cca0.tar.zst
gsoc2013-evolution-4a12e23cab29df538eeec9b5f4d7dcf9a2f6cca0.zip
EHTMLEditor: Move remove_node and remove_node_if_empty to EWebView
And use them in EHTMLEditorView if possible.
Diffstat (limited to 'e-util/e-web-view.c')
-rw-r--r--e-util/e-web-view.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/e-util/e-web-view.c b/e-util/e-web-view.c
index 5c6a8fbf57..5a1881dd85 100644
--- a/e-util/e-web-view.c
+++ b/e-util/e-web-view.c
@@ -3655,3 +3655,32 @@ element_remove_class (WebKitDOMElement *element,
g_free (element_class);
}
+
+void
+remove_node (WebKitDOMNode *node)
+{
+ webkit_dom_node_remove_child (
+ webkit_dom_node_get_parent_node (node), node, NULL);
+}
+
+void
+remove_node_if_empty (WebKitDOMNode *node)
+{
+ if (!WEBKIT_DOM_IS_NODE (node))
+ return;
+
+ if (!webkit_dom_node_get_first_child (node)) {
+ remove_node (node);
+ } else {
+ gchar *text_content;
+
+ text_content = webkit_dom_node_get_text_content (node);
+ if (!text_content)
+ remove_node (node);
+
+ if (text_content && !*text_content)
+ remove_node (node);
+
+ g_free (text_content);
+ }
+}