diff options
| author | Fabrice <fabrice@schaub-dev.xyz> | 2026-02-10 11:19:00 +0100 |
|---|---|---|
| committer | Fabrice <fabrice@schaub-dev.xyz> | 2026-02-10 11:19:00 +0100 |
| commit | e833a9d2318625eb641cff2edca9b5ca56594ce5 (patch) | |
| tree | c5b132fa35dbca3a4cb610ed5d5b428c833afee4 /src/events.cc | |
| parent | 6b82cee41f6d144ddb302f696806d3a4dfeee48a (diff) | |
adding handler method
Diffstat (limited to 'src/events.cc')
| -rw-r--r-- | src/events.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/events.cc b/src/events.cc index 1795c85..755c034 100644 --- a/src/events.cc +++ b/src/events.cc @@ -8,15 +8,19 @@ static inline window_id_t wayc_eventloop_genid(struct eventloop_s *loop) { return loop->winid++; } -bool wayc_eventloop_init(struct eventloop_s *loop) { +bool wayc_eventloop_init(struct eventloop_s *loop, event_handler_t handler) { wayc_notnull(loop); + wayc_notnull(handler); + memset(loop, 0, sizeof(*loop)); if (!wayc_wlstate_init(&loop->state)) return false; loop->events = WAYC_VEC_INIT(struct event_s); + loop->handler = handler; loop->running = true; + wayc_hashmap_init(&loop->windows); return true; @@ -55,4 +59,8 @@ void wayc_eventloop_update(struct eventloop_s *loop) { loop->running = false; wayc_wlstate_update(&loop->state); + + struct event_s event; + while (wayc_vec_pop(&loop->events, &event)) + loop->handler(loop, &event); } |
