From aac10f24d1d62d98cd620ae83930a4ba08a1b2a1 Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Wed, 17 Jan 2024 23:40:02 +0000 Subject: [PATCH] Only handle events from the active window --- src/compositor.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/compositor.c b/src/compositor.c index 33cefa0..5dc258f 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -19,6 +19,7 @@ typedef struct compositor compositor_t; struct compositor { window_t windows[MAX_WINDOWS]; + u32 active_window; SDL_Event event; bool running; u64 mouse_x; @@ -77,9 +78,8 @@ i32 run_main_loop(void) { while (comp.running) { while (SDL_PollEvent(&(comp.event))) { - for (u64 i = 0; i < MAX_WINDOWS; ++i) { - handle_ui_events(&(comp.windows[i]), &(comp.ctx), &(comp.event)); - } + handle_ui_events(&(comp.windows[comp.active_window - 1]), &(comp.ctx), + &(comp.event)); switch (comp.event.type) { case SDL_QUIT: @@ -98,6 +98,7 @@ i32 run_main_loop(void) { window_t *window = &(comp.windows[i]); if (id == window->id) { + comp.active_window = id; wnd = window; break; }