From bdaebcbe8e210ff1907f35955e5dabae344ef02c Mon Sep 17 00:00:00 2001 From: Wenz-jam Date: Sat, 12 Apr 2025 15:57:41 +0800 Subject: [PATCH] fix: nvboard is not responding --- src/event.cpp | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/event.cpp b/src/event.cpp index ada0b73..ea695d1 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -43,24 +43,25 @@ static void mouseup_handler(const SDL_Event &ev) { void read_event() { SDL_Event ev; - SDL_PollEvent(&ev); - switch (ev.type) { - case SDL_QUIT: exit(0); - case SDL_WINDOWEVENT: - if (ev.window.event == SDL_WINDOWEVENT_CLOSE) { exit(0); } - break; - case SDL_MOUSEBUTTONDOWN: mousedown_handler(ev); break; - case SDL_MOUSEBUTTONUP: mouseup_handler(ev); break; - case SDL_KEYDOWN: - if (uart_term_get_focus) { - switch (ev.key.keysym.sym) { - case SDLK_RETURN: uart_rx_getchar('\n'); break; - case SDLK_BACKSPACE: uart_rx_getchar('\b'); break; + while (SDL_PollEvent(&ev)) { + switch (ev.type) { + case SDL_QUIT: exit(0); + case SDL_WINDOWEVENT: + if (ev.window.event == SDL_WINDOWEVENT_CLOSE) { exit(0); } + break; + case SDL_MOUSEBUTTONDOWN: mousedown_handler(ev); break; + case SDL_MOUSEBUTTONUP: mouseup_handler(ev); break; + case SDL_KEYDOWN: + if (uart_term_get_focus) { + switch (ev.key.keysym.sym) { + case SDLK_RETURN: uart_rx_getchar('\n'); break; + case SDLK_BACKSPACE: uart_rx_getchar('\b'); break; + } } - } - case SDL_KEYUP: - if (!uart_term_get_focus) kb_push_key(ev.key.keysym.scancode, ev.key.type == SDL_KEYDOWN); - break; - case SDL_TEXTINPUT: if (uart_term_get_focus) uart_rx_getchar(ev.text.text[0]); break; + case SDL_KEYUP: + if (!uart_term_get_focus) kb_push_key(ev.key.keysym.scancode, ev.key.type == SDL_KEYDOWN); + break; + case SDL_TEXTINPUT: if (uart_term_get_focus) uart_rx_getchar(ev.text.text[0]); break; + } } }