refactor(core): make the event manager a bit easier to read
This commit is contained in:
parent
c01243d1c6
commit
8ebe0cd0c8
1 changed files with 19 additions and 18 deletions
|
@ -22,24 +22,25 @@ int zmk_event_manager_handle_from(zmk_event_t *event, uint8_t start_index) {
|
||||||
uint8_t len = __event_subscriptions_end - __event_subscriptions_start;
|
uint8_t len = __event_subscriptions_end - __event_subscriptions_start;
|
||||||
for (int i = start_index; i < len; i++) {
|
for (int i = start_index; i < len; i++) {
|
||||||
struct zmk_event_subscription *ev_sub = __event_subscriptions_start + i;
|
struct zmk_event_subscription *ev_sub = __event_subscriptions_start + i;
|
||||||
if (ev_sub->event_type == event->event) {
|
if (ev_sub->event_type != event->event) {
|
||||||
ret = ev_sub->listener->callback(event);
|
continue;
|
||||||
if (ret < 0) {
|
}
|
||||||
LOG_DBG("Listener returned an error: %d", ret);
|
ret = ev_sub->listener->callback(event);
|
||||||
goto release;
|
switch (ret) {
|
||||||
} else if (ret > 0) {
|
case ZMK_EV_EVENT_BUBBLE:
|
||||||
switch (ret) {
|
continue;
|
||||||
case ZMK_EV_EVENT_HANDLED:
|
case ZMK_EV_EVENT_HANDLED:
|
||||||
LOG_DBG("Listener handled the event");
|
LOG_DBG("Listener handled the event");
|
||||||
ret = 0;
|
ret = 0;
|
||||||
goto release;
|
goto release;
|
||||||
case ZMK_EV_EVENT_CAPTURED:
|
case ZMK_EV_EVENT_CAPTURED:
|
||||||
LOG_DBG("Listener captured the event");
|
LOG_DBG("Listener captured the event");
|
||||||
event->last_listener_index = i;
|
event->last_listener_index = i;
|
||||||
// Listeners are expected to free events they capture
|
// Listeners are expected to free events they capture
|
||||||
return 0;
|
return 0;
|
||||||
}
|
default:
|
||||||
}
|
LOG_DBG("Listener returned an error: %d", ret);
|
||||||
|
goto release;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue