diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index a6779dc8ba..a9abf829c8 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -573,8 +573,8 @@ static void rgui_render(void *data, bool is_idle) char message[255]; char entry_title_buf[255]; char type_str_buf[255]; + unsigned entry_spacing; size_t entry_title_buf_utf8len, entry_title_buf_len; - unsigned entry_spacing = menu_entry_get_spacing((unsigned)i); bool entry_selected = menu_entry_is_currently_selected((unsigned)i); size_t selection = menu_navigation_get_selection(); @@ -590,6 +590,7 @@ static void rgui_render(void *data, bool is_idle) menu_entry_init(&entry); menu_entry_get(&entry, 0, (unsigned)i, NULL, true); + entry_spacing = menu_entry_get_spacing(&entry); menu_entry_get_value(&entry, entry_value, sizeof(entry_value)); menu_entry_get_rich_label(&entry, entry_path, sizeof(entry_path)); diff --git a/menu/widgets/menu_entry.c b/menu/widgets/menu_entry.c index f7635ce99e..6047843661 100644 --- a/menu/widgets/menu_entry.c +++ b/menu/widgets/menu_entry.c @@ -131,14 +131,11 @@ void menu_entry_get_label(menu_entry_t *entry, char *s, size_t len) strlcpy(s, entry->label, len); } -unsigned menu_entry_get_spacing(uint32_t i) +unsigned menu_entry_get_spacing(menu_entry_t *entry) { - menu_entry_t entry; - - menu_entry_init(&entry); - menu_entry_get(&entry, 0, i, NULL, true); - - return entry.spacing; + if (!entry) + return 0; + return entry->spacing; } unsigned menu_entry_get_type_new(uint32_t i) diff --git a/menu/widgets/menu_entry.h b/menu/widgets/menu_entry.h index 5b44abb8e7..eed9a7bc62 100644 --- a/menu/widgets/menu_entry.h +++ b/menu/widgets/menu_entry.h @@ -63,7 +63,7 @@ void menu_entry_get_path(uint32_t i, char *s, size_t len); void menu_entry_get_label(menu_entry_t *entry, char *s, size_t len); -unsigned menu_entry_get_spacing(uint32_t i); +unsigned menu_entry_get_spacing(menu_entry_t *entry); unsigned menu_entry_get_type_new(uint32_t i);