diff options
author | Brendan Taylor <whateley@gmail.com> | 2011-05-09 19:12:23 -0600 |
---|---|---|
committer | Brendan Taylor <whateley@gmail.com> | 2011-05-09 19:12:23 -0600 |
commit | 54529db108fc0400f612f48742965c58548f474b (patch) | |
tree | efa26e1c85b182e73eb700c72ead65f96a78603f /src/callbacks.c | |
parent | 44b97f68f3e14f65a21d9c13d6ee50a2112be9c8 (diff) | |
parent | c0bbabfef810b3976705bd1a384ff31735479ff0 (diff) |
Merge remote-tracking branch 'keis/focus-event' into experimental
Conflicts:
src/callbacks.c
src/callbacks.h
Diffstat (limited to 'src/callbacks.c')
-rw-r--r-- | src/callbacks.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/callbacks.c b/src/callbacks.c index 14748c4..853edb2 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -1048,4 +1048,38 @@ scrollbars_policy_cb(WebKitWebView *view) { return TRUE; } +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; + 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) { + (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); +} +#endif + /* vi: set et ts=4: */ |