From efac8466ef264149d6f394ea3328b005139ba5e6 Mon Sep 17 00:00:00 2001 From: jakobrs Date: Mon, 25 Apr 2022 20:52:22 +0200 Subject: [PATCH] Use tb_poll_event instead of tb_peek_event (#320) draw_box and position_input are called because they need to be called before *input_handles[active_input] for the cursor to be positioned correctly. --- src/main.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c index 8fbcb94..a1d2c09 100644 --- a/src/main.c +++ b/src/main.c @@ -137,11 +137,17 @@ int main(int argc, char** argv) struct term_buf buf; uint8_t active_input = config.default_input; - (*input_handles[active_input])(input_structs[active_input], NULL); // init drawing stuff draw_init(&buf); + // draw_box and position_input are called because they need to be + // called before *input_handles[active_input] for the cursor to be + // positioned correctly + draw_box(&buf); + position_input(&buf, &desktop, &login, &password); + (*input_handles[active_input])(input_structs[active_input], NULL); + if (config.animate) { animate_init(&buf); @@ -170,6 +176,7 @@ int main(int argc, char** argv) { if (auth_fails < 10) { + (*input_handles[active_input])(input_structs[active_input], NULL); tb_clear(); animate(&buf); draw_box(&buf); @@ -192,7 +199,11 @@ int main(int argc, char** argv) tb_present(); } - error = tb_peek_event(&event, config.min_refresh_delta); + if (config.animate) { + error = tb_peek_event(&event, config.min_refresh_delta); + } else { + error = tb_poll_event(&event); + } if (error < 0) { @@ -218,6 +229,7 @@ int main(int argc, char** argv) if (active_input > 0) { input_text_clear(input_structs[active_input]); + update = true; } break; case TB_KEY_ARROW_UP: