Only handle events from the active window
This commit is contained in:
parent
718e7eec21
commit
aac10f24d1
@ -19,6 +19,7 @@
|
|||||||
typedef struct compositor compositor_t;
|
typedef struct compositor compositor_t;
|
||||||
struct compositor {
|
struct compositor {
|
||||||
window_t windows[MAX_WINDOWS];
|
window_t windows[MAX_WINDOWS];
|
||||||
|
u32 active_window;
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
bool running;
|
bool running;
|
||||||
u64 mouse_x;
|
u64 mouse_x;
|
||||||
@ -77,9 +78,8 @@ i32 run_main_loop(void) {
|
|||||||
|
|
||||||
while (comp.running) {
|
while (comp.running) {
|
||||||
while (SDL_PollEvent(&(comp.event))) {
|
while (SDL_PollEvent(&(comp.event))) {
|
||||||
for (u64 i = 0; i < MAX_WINDOWS; ++i) {
|
handle_ui_events(&(comp.windows[comp.active_window - 1]), &(comp.ctx),
|
||||||
handle_ui_events(&(comp.windows[i]), &(comp.ctx), &(comp.event));
|
&(comp.event));
|
||||||
}
|
|
||||||
|
|
||||||
switch (comp.event.type) {
|
switch (comp.event.type) {
|
||||||
case SDL_QUIT:
|
case SDL_QUIT:
|
||||||
@ -98,6 +98,7 @@ i32 run_main_loop(void) {
|
|||||||
window_t *window = &(comp.windows[i]);
|
window_t *window = &(comp.windows[i]);
|
||||||
|
|
||||||
if (id == window->id) {
|
if (id == window->id) {
|
||||||
|
comp.active_window = id;
|
||||||
wnd = window;
|
wnd = window;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user