summaryrefslogtreecommitdiff
path: root/render/html.c
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2015-10-31 14:52:37 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2015-10-31 18:01:38 +0100
commit5a107a466bb3153d0d6aea01f4574a907a921ed8 (patch)
treecc5fdf9086698470210000c4b46586c86cbab400 /render/html.c
parent71f296a41ce7509ebbf052c80cf0cdaaf6ce0451 (diff)
downloadnetsurf-5a107a466bb3153d0d6aea01f4574a907a921ed8.tar.gz
netsurf-5a107a466bb3153d0d6aea01f4574a907a921ed8.tar.bz2
Initial work toward JS event support
Diffstat (limited to 'render/html.c')
-rw-r--r--render/html.c14
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;
}