From 753ca2800d0efb975d0ccd6450102d566941550c Mon Sep 17 00:00:00 2001 From: keis Date: Fri, 29 Apr 2011 20:29:14 +0200 Subject: add focus and blur events from DOM --- src/callbacks.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/callbacks.c') diff --git a/src/callbacks.c b/src/callbacks.c index 6821700..c956f1b 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -1062,4 +1062,30 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) { } } +void +window_object_cleared_cb(WebKitWebView *webview, WebKitWebFrame *frame, + JSGlobalContextRef *context, JSObjectRef *object) { + // Take this opportunity to set some callbacks on the DOM + WebKitDOMDocument *document = webkit_web_view_get_dom_document (webview); + webkit_dom_event_target_add_event_listener (WEBKIT_DOM_EVENT_TARGET (document), + "focus", G_CALLBACK(dom_focus_cb), TRUE, NULL); + webkit_dom_event_target_add_event_listener (WEBKIT_DOM_EVENT_TARGET (document), + "blur", G_CALLBACK(dom_focus_cb), TRUE, NULL); +} + +void +dom_focus_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_data) { + WebKitDOMEventTarget *etarget = webkit_dom_event_get_target (event); + gchar* name = webkit_dom_node_get_node_name (WEBKIT_DOM_NODE (etarget)); + send_event (FOCUS_ELEMENT, NULL, TYPE_STR, name, NULL); +} + +void +dom_blur_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_data) { + WebKitDOMEventTarget *etarget = webkit_dom_event_get_target (event); + gchar* name = webkit_dom_node_get_node_name (WEBKIT_DOM_NODE (etarget)); + send_event (BLUR_ELEMENT, NULL, TYPE_STR, name, NULL); +} + + /* vi: set et ts=4: */ -- cgit v1.2.3 From a4309567b41b24174632319ab700de5c65c6debb Mon Sep 17 00:00:00 2001 From: keis Date: Fri, 29 Apr 2011 21:02:52 +0200 Subject: git rid of unused warning --- src/callbacks.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/callbacks.c') diff --git a/src/callbacks.c b/src/callbacks.c index c956f1b..fba4b77 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -1065,6 +1065,7 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) { void window_object_cleared_cb(WebKitWebView *webview, WebKitWebFrame *frame, JSGlobalContextRef *context, JSObjectRef *object) { + (void) frame; (void) context; (void) object; // Take this opportunity to set some callbacks on the DOM WebKitDOMDocument *document = webkit_web_view_get_dom_document (webview); webkit_dom_event_target_add_event_listener (WEBKIT_DOM_EVENT_TARGET (document), @@ -1075,6 +1076,7 @@ window_object_cleared_cb(WebKitWebView *webview, WebKitWebFrame *frame, void dom_focus_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_data) { + (void) target; (void) user_data; WebKitDOMEventTarget *etarget = webkit_dom_event_get_target (event); gchar* name = webkit_dom_node_get_node_name (WEBKIT_DOM_NODE (etarget)); send_event (FOCUS_ELEMENT, NULL, TYPE_STR, name, NULL); @@ -1082,6 +1084,7 @@ dom_focus_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_ void dom_blur_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_data) { + (void) target; (void) user_data; WebKitDOMEventTarget *etarget = webkit_dom_event_get_target (event); gchar* name = webkit_dom_node_get_node_name (WEBKIT_DOM_NODE (etarget)); send_event (BLUR_ELEMENT, NULL, TYPE_STR, name, NULL); -- cgit v1.2.3 From c0bbabfef810b3976705bd1a384ff31735479ff0 Mon Sep 17 00:00:00 2001 From: David Keijser Date: Mon, 9 May 2011 07:04:12 +0200 Subject: wrap DOM callbacks in version check --- src/callbacks.c | 7 ++++++- src/callbacks.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/callbacks.c') diff --git a/src/callbacks.c b/src/callbacks.c index fba4b77..3448a20 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -1066,14 +1066,19 @@ void window_object_cleared_cb(WebKitWebView *webview, WebKitWebFrame *frame, JSGlobalContextRef *context, JSObjectRef *object) { (void) frame; (void) context; (void) object; +#if WEBKIT_CHECK_VERSION (1, 3, 13) // Take this opportunity to set some callbacks on the DOM WebKitDOMDocument *document = webkit_web_view_get_dom_document (webview); webkit_dom_event_target_add_event_listener (WEBKIT_DOM_EVENT_TARGET (document), "focus", G_CALLBACK(dom_focus_cb), TRUE, NULL); webkit_dom_event_target_add_event_listener (WEBKIT_DOM_EVENT_TARGET (document), "blur", G_CALLBACK(dom_focus_cb), TRUE, NULL); +#else + (void) webview; +#endif } +#if WEBKIT_CHECK_VERSION (1, 3, 13) void dom_focus_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_data) { (void) target; (void) user_data; @@ -1089,6 +1094,6 @@ dom_blur_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_d gchar* name = webkit_dom_node_get_node_name (WEBKIT_DOM_NODE (etarget)); send_event (BLUR_ELEMENT, NULL, TYPE_STR, name, NULL); } - +#endif /* vi: set et ts=4: */ diff --git a/src/callbacks.h b/src/callbacks.h index 834ed65..9ad754a 100644 --- a/src/callbacks.h +++ b/src/callbacks.h @@ -227,8 +227,10 @@ void window_object_cleared_cb(WebKitWebView *webview, WebKitWebFrame *frame, JSGlobalContextRef *context, JSObjectRef *object); +#if WEBKIT_CHECK_VERSION (1, 3, 13) void dom_focus_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_data); void dom_blur_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_data); +#endif -- cgit v1.2.3