From 631d3a17b3285ebc4eb095d4551cc8460e26b09e Mon Sep 17 00:00:00 2001 From: Malko Gindrat Date: Sat, 1 Aug 2026 00:29:43 +0200 Subject: [PATCH] Keep cursor visible longer than hidden --- src/c64_ui.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/c64_ui.c b/src/c64_ui.c index 7a314ef..9e48619 100644 --- a/src/c64_ui.c +++ b/src/c64_ui.c @@ -46,10 +46,15 @@ static void draw_glyph(lv_obj_t *parent, char character, lv_coord_t x, lv_coord_ } } -static void cursor_blink(void *object, int32_t visible) { - lv_obj_set_style_bg_opa((lv_obj_t *)object, - visible ? LV_OPA_COVER : LV_OPA_TRANSP, +static bool cursor_visible = true; + +static void cursor_blink(lv_timer_t *timer) { + cursor_visible = !cursor_visible; + lv_obj_t *cursor = (lv_obj_t *)timer->user_data; + lv_obj_set_style_bg_opa(cursor, + cursor_visible ? LV_OPA_COVER : LV_OPA_TRANSP, LV_PART_MAIN); + lv_timer_set_period(timer, cursor_visible ? 667 : 333); } void c64_ui_create(void) { @@ -72,13 +77,5 @@ void c64_ui_create(void) { lv_obj_set_style_bg_color(cursor, C64_LIGHT_BLUE, LV_PART_MAIN); lv_obj_set_style_bg_opa(cursor, LV_OPA_COVER, LV_PART_MAIN); - lv_anim_t blink; - lv_anim_init(&blink); - lv_anim_set_var(&blink, cursor); - lv_anim_set_values(&blink, 1, 0); - lv_anim_set_time(&blink, 333); - lv_anim_set_playback_time(&blink, 333); - lv_anim_set_repeat_count(&blink, LV_ANIM_REPEAT_INFINITE); - lv_anim_set_exec_cb(&blink, cursor_blink); - lv_anim_start(&blink); + lv_timer_create(cursor_blink, 667, cursor); }