diff --git a/stm-firmware/ui/gui.c b/stm-firmware/ui/gui.c index 443d4e3..df65ba9 100644 --- a/stm-firmware/ui/gui.c +++ b/stm-firmware/ui/gui.c @@ -663,21 +663,26 @@ static void gui_update_firmware(struct lcd_menu *menu, enum menu_entry_func_entr } } - if (entry_type == MENU_ENTRY_FIRST_ENTER || - previously_selected_file != currently_selected_file) { - fname = sl_list_nth(file_list, currently_selected_file)->data; - menu_lcd_output(menu, 0, "Select File:"); - if (fname) - menu_lcd_output(menu, 1, fname); + if (list_length) { + if (entry_type == MENU_ENTRY_FIRST_ENTER || + previously_selected_file != currently_selected_file) { + fname = sl_list_nth(file_list, currently_selected_file)->data; + menu_lcd_output(menu, 0, "Select File:"); + if (fname) + menu_lcd_output(menu, 1, fname); + } + if (button == BUTTON_SHORT_RELEASED) { + fname = sl_list_nth(file_list, currently_selected_file)->data; + menu_display_clear(menu); + updater_update_from_file(fname); + /* This code is here for completeness. It will never be reached! */ + sl_list_free_full(file_list, delete_file_list_entry); + } + } else { + menu_lcd_output(menu, 0, "No files!"); } - if (button == BUTTON_SHORT_RELEASED) { - fname = sl_list_nth(file_list, currently_selected_file)->data; - menu_display_clear(menu); - file_list = NULL; - updater_update_from_file(fname); - /* This code is here for completeness. It will never be reached! */ - sl_list_free_full(file_list, delete_file_list_entry); - } else if (button == BUTTON_LONG) { + + if (button == BUTTON_LONG) { sl_list_free_full(file_list, delete_file_list_entry); file_list = NULL; menu_entry_dropback(menu, my_parent);