fix: nvboard is not responding

This commit is contained in:
Wenz-jam 2025-04-12 15:57:41 +08:00
parent f38aa2ac97
commit bdaebcbe8e
1 changed files with 19 additions and 18 deletions

View File

@ -43,24 +43,25 @@ static void mouseup_handler(const SDL_Event &ev) {
void read_event() { void read_event() {
SDL_Event ev; SDL_Event ev;
SDL_PollEvent(&ev); while (SDL_PollEvent(&ev)) {
switch (ev.type) { switch (ev.type) {
case SDL_QUIT: exit(0); case SDL_QUIT: exit(0);
case SDL_WINDOWEVENT: case SDL_WINDOWEVENT:
if (ev.window.event == SDL_WINDOWEVENT_CLOSE) { exit(0); } if (ev.window.event == SDL_WINDOWEVENT_CLOSE) { exit(0); }
break; break;
case SDL_MOUSEBUTTONDOWN: mousedown_handler(ev); break; case SDL_MOUSEBUTTONDOWN: mousedown_handler(ev); break;
case SDL_MOUSEBUTTONUP: mouseup_handler(ev); break; case SDL_MOUSEBUTTONUP: mouseup_handler(ev); break;
case SDL_KEYDOWN: case SDL_KEYDOWN:
if (uart_term_get_focus) { if (uart_term_get_focus) {
switch (ev.key.keysym.sym) { switch (ev.key.keysym.sym) {
case SDLK_RETURN: uart_rx_getchar('\n'); break; case SDLK_RETURN: uart_rx_getchar('\n'); break;
case SDLK_BACKSPACE: uart_rx_getchar('\b'); break; case SDLK_BACKSPACE: uart_rx_getchar('\b'); break;
}
} }
} case SDL_KEYUP:
case SDL_KEYUP: if (!uart_term_get_focus) kb_push_key(ev.key.keysym.scancode, ev.key.type == SDL_KEYDOWN);
if (!uart_term_get_focus) kb_push_key(ev.key.keysym.scancode, ev.key.type == SDL_KEYDOWN); break;
break; case SDL_TEXTINPUT: if (uart_term_get_focus) uart_rx_getchar(ev.text.text[0]); break;
case SDL_TEXTINPUT: if (uart_term_get_focus) uart_rx_getchar(ev.text.text[0]); break; }
} }
} }