diff options
author | Pete Johanson <peter@peterjohanson.com> | 2020-07-31 23:32:04 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-31 23:32:04 -0400 |
commit | 24ec83c234bb76b9a7f04678251723ba4918201e (patch) | |
tree | 62c9ef9b1411806c7baddb73bd83fefd8105cccf /app/src/event_manager.c | |
parent | f269b26ea1cdd61e39f13c6e11cbdfcdc6a0bd5c (diff) | |
parent | 8a07938d9b03567ba11fc3e86a4fefb0ac098646 (diff) |
Merge pull request #69 from petejohanson/behaviors/mod-tap-usability-fixes
Improve mod-tap behaviour
Diffstat (limited to 'app/src/event_manager.c')
-rw-r--r-- | app/src/event_manager.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/app/src/event_manager.c b/app/src/event_manager.c index 3edba10..5d2e9ed 100644 --- a/app/src/event_manager.c +++ b/app/src/event_manager.c @@ -55,6 +55,22 @@ int zmk_event_manager_raise(struct zmk_event_header *event) return zmk_event_manager_handle_from(event, 0); } +int zmk_event_manager_raise_after(struct zmk_event_header *event, const struct zmk_listener *listener) +{ + u8_t len = __event_subscriptions_end - __event_subscriptions_start; + for (int i = 0; i < len; i++) { + struct zmk_event_subscription *ev_sub = __event_subscriptions_start + i; + + if (ev_sub->event_type == event->event && ev_sub->listener == listener) { + return zmk_event_manager_handle_from(event, i+1); + } + } + + LOG_WRN("Unable to find where to raise this after event"); + + return -EINVAL; +} + int zmk_event_manager_release(struct zmk_event_header *event) { return zmk_event_manager_handle_from(event, event->last_listener_index + 1); |