summaryrefslogtreecommitdiff
path: root/src/events.cc
diff options
context:
space:
mode:
authorFabrice <fabrice@schaub-dev.xyz>2026-02-10 10:26:50 +0100
committerFabrice <fabrice@schaub-dev.xyz>2026-02-10 10:26:50 +0100
commit97a214db20684ef192478799b9ae050beebdfe60 (patch)
treeb24c04c19b2b0a68ddc0de50565ed255a8b31d1f /src/events.cc
parent5be69e64cfd17b20c0c7fef3b3e2983cf69e8645 (diff)
fork
Diffstat (limited to 'src/events.cc')
-rw-r--r--src/events.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/events.cc b/src/events.cc
index 6a3190c..edc47db 100644
--- a/src/events.cc
+++ b/src/events.cc
@@ -3,6 +3,11 @@
#include "vec.h"
#include <cstring>
+static inline window_id_t wayc_eventloop_genid(struct eventloop_s *loop) {
+ wayc_notnull(loop);
+ return loop->winid++;
+}
+
bool wayc_eventloop_init(struct eventloop_s *loop) {
wayc_notnull(loop);
memset(loop, 0, sizeof(*loop));
@@ -22,3 +27,18 @@ void wayc_eventloop_deinit(struct eventloop_s *loop) {
wayc_wlstate_deinit(&loop->state);
wayc_vec_deinit(&loop->events);
}
+
+window_id_t wayc_eventloop_register(struct eventloop_s *loop,
+ struct window_s *window) {
+ wayc_notnull(loop);
+ wayc_notnull(window);
+
+ window_id_t winid = wayc_eventloop_genid(loop);
+ wayc_hashmap_insert(&loop->windows, &winid, &window);
+ return winid;
+}
+
+void wayc_eventloop_unregister(struct eventloop_s *loop, window_id_t winid) {
+ wayc_notnull(loop);
+ wayc_hashmap_remove(&loop->windows, &winid);
+} \ No newline at end of file