Rewrite debug window filtering in JS.

Sat, 04 May 2013 23:21:21 -0400

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Sat, 04 May 2013 23:21:21 -0400
changeset 33921
d1e2fdbc3d56
parent 33920
6a4eaacdd207
child 33922
61f997b47954

Rewrite debug window filtering in JS.

pidgin/gtkdebug.c file | annotate | diff | comparison | revisions
--- a/pidgin/gtkdebug.c	Sat May 04 22:37:40 2013 -0400
+++ b/pidgin/gtkdebug.c	Sat May 04 23:21:21 2013 -0400
@@ -104,6 +104,9 @@
 			"parent.removeChild(pause);" \
 		"}" \
 	"}" \
+	"function setFilterLevel(l) {" \
+		"document.body.className = 'l'+l;" \
+	"}" \
 	"</script></head><body class=l0></body></html>"
 
 static DebugWindow *debug_win = NULL;
@@ -584,18 +587,14 @@
 filter_level_pref_changed(const char *name, PurplePrefType type, gconstpointer value, gpointer data)
 {
 	DebugWindow *win = data;
-	WebKitDOMDocument *dom;
-	WebKitDOMHTMLElement *body;
 	int level = GPOINTER_TO_INT(value);
 	char *tmp;
 
 	if (level != gtk_combo_box_get_active(GTK_COMBO_BOX(win->filterlevel)))
 		gtk_combo_box_set_active(GTK_COMBO_BOX(win->filterlevel), level);
 
-	dom = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(win->text));
-	body = webkit_dom_document_get_body(dom);
-	tmp = g_strdup_printf("l%d", level);
-	webkit_dom_html_element_set_class_name(body, tmp);
+	tmp = g_strdup_printf("setFilterLevel('%d');", level);
+	gtk_webview_safe_execute_script(GTK_WEBVIEW(win->text), tmp);
 	g_free(tmp);
 }
 

mercurial