diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-10-31 10:44:13 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-10-31 10:52:20 +0100 |
commit | 367ffae6cc52e00e7ce00952e3c81484a651c8f4 (patch) | |
tree | edec5f8d86969171a8c6034b82ad1e5ffd680d85 | |
parent | bb8f6c2adbc9f78801d49d3c748d2abe9d4c43a9 (diff) | |
download | libdom-367ffae6cc52e00e7ce00952e3c81484a651c8f4.tar.gz libdom-367ffae6cc52e00e7ce00952e3c81484a651c8f4.tar.bz2 |
Add a _FINISHED event action callback
We can then use this for JS to hook cleanups into place.
-rw-r--r-- | include/dom/events/document_event.h | 3 | ||||
-rw-r--r-- | src/core/node.c | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/include/dom/events/document_event.h b/include/dom/events/document_event.h index 060ad00..3842fd5 100644 --- a/include/dom/events/document_event.h +++ b/include/dom/events/document_event.h @@ -67,7 +67,8 @@ typedef void (*dom_default_action_callback)(struct dom_event *evt, void *pw); typedef enum { DOM_DEFAULT_ACTION_STARTED = 0, DOM_DEFAULT_ACTION_PREVENTED, - DOM_DEFAULT_ACTION_END + DOM_DEFAULT_ACTION_END, + DOM_DEFAULT_ACTION_FINISHED } dom_default_action_phase; /** diff --git a/src/core/node.c b/src/core/node.c index 49033c0..704d7e5 100644 --- a/src/core/node.c +++ b/src/core/node.c @@ -2489,6 +2489,14 @@ cleanup: } free(targets); + if (dei->actions != NULL) { + dom_default_action_callback cb = dei->actions(evt->type, + DOM_DEFAULT_ACTION_FINISHED, &pw); + if (cb != NULL) { + cb(evt, pw); + } + } + return ret; } |