Index: trunk/apps/gui/list.c =================================================================== --- trunk.orig/apps/gui/list.c +++ trunk/apps/gui/list.c @@ -905,8 +905,6 @@ bool simplelist_show_list(struct simplel if (info->get_name == NULL) gui_synclist_set_nb_items(&lists, simplelist_line_count*info->selection_size); gui_synclist_draw(&lists); - if (action != ACTION_NONE) - gui_synclist_speak_item(&lists); old_line_count = simplelist_line_count; } else if(default_event_handler(action) == SYS_USB_CONNECTED) Index: trunk/apps/menus/main_menu.c =================================================================== --- trunk.orig/apps/menus/main_menu.c +++ trunk/apps/menus/main_menu.c @@ -291,7 +291,6 @@ static int info_speak_item(int selected_ #if CONFIG_RTC struct tm *tm; - static int last_talk = 0; #endif switch (selected_item) @@ -302,19 +301,15 @@ static int info_speak_item(int selected_ break; #if CONFIG_RTC case INFO_TIME: - if (TIME_AFTER(current_tick, last_talk + HZ*60)) + tm = get_time(); + talk_id(VOICE_CURRENT_TIME, false); + if (valid_time(tm)) + { + talk_time(tm, true); + } + else { - tm = get_time(); - talk_id(VOICE_CURRENT_TIME, false); - if (valid_time(tm)) - { - talk_time(tm, true); - } - else - { - talk_id(LANG_UNKNOWN, true); - } - last_talk = current_tick; + talk_id(LANG_UNKNOWN, true); } break; case INFO_DATE: @@ -419,21 +414,15 @@ static int info_action_callback(int acti (void) lists; #endif + gui_synclist_speak_item(lists); return ACTION_REDRAW; } #if CONFIG_RTC else if (action == ACTION_NONE) { - if ((global_settings.talk_menu && lists->selected_item == INFO_TIME) || - (!global_settings.talk_menu && - gui_synclist_item_is_onscreen(lists, 0, INFO_TIME))) + if (gui_synclist_item_is_onscreen(lists, 0, INFO_TIME)) { - static int last_redraw = 0; - if (TIME_AFTER(current_tick, last_redraw + HZ*5)) - { - last_redraw = current_tick; - return ACTION_REDRAW; - } + return ACTION_REDRAW; } } #endif