diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-10-31 14:52:37 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-10-31 18:01:38 +0100 |
commit | 5a107a466bb3153d0d6aea01f4574a907a921ed8 (patch) | |
tree | cc5fdf9086698470210000c4b46586c86cbab400 /render/html.c | |
parent | 71f296a41ce7509ebbf052c80cf0cdaaf6ce0451 (diff) | |
download | netsurf-5a107a466bb3153d0d6aea01f4574a907a921ed8.tar.gz netsurf-5a107a466bb3153d0d6aea01f4574a907a921ed8.tar.bz2 |
Initial work toward JS event support
Diffstat (limited to 'render/html.c')
-rw-r--r-- | render/html.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/render/html.c b/render/html.c index 67e1bdf2b..bbeb1a57a 100644 --- a/render/html.c +++ b/render/html.c @@ -644,6 +644,9 @@ dom_default_action_DOMNodeInserted_cb(struct dom_event *evt, void *pw) } dom_string_unref(name); + if (htmlc->jscontext != NULL) + js_handle_new_element(htmlc->jscontext, + (dom_element *) node); } } dom_node_unref(node); @@ -688,6 +691,15 @@ dom_default_action_DOMSubtreeModified_cb(struct dom_event *evt, void *pw) } } +static void +dom_default_action_finished_cb(struct dom_event *evt, void *pw) +{ + html_content *htmlc = pw; + + if (htmlc->jscontext != NULL) + js_event_cleanup(htmlc->jscontext, evt); +} + /* callback function selector * * selects a callback function for libdom to call based on the type and phase. @@ -714,6 +726,8 @@ dom_event_fetcher(dom_string *type, } else if (dom_string_isequal(type, corestring_dom_DOMSubtreeModified)) { return dom_default_action_DOMSubtreeModified_cb; } + } else if (phase == DOM_DEFAULT_ACTION_FINISHED) { + return dom_default_action_finished_cb; } return NULL; } |