diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2007-06-21 12:32:10 +0000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2007-06-21 12:32:10 +0000 |
| commit | 0baad43a935319d417f89f2c5c00e764e42a99ad (patch) | |
| tree | ceca9f4a049c13bd4cbbcc82ba4ca2607daa4dc7 | |
| parent | 3585ee7a3f5db5d635f5ce9a4a396a4242851da0 (diff) | |
| download | rockbox-0baad43a935319d417f89f2c5c00e764e42a99ad.zip rockbox-0baad43a935319d417f89f2c5c00e764e42a99ad.tar.gz rockbox-0baad43a935319d417f89f2c5c00e764e42a99ad.tar.bz2 rockbox-0baad43a935319d417f89f2c5c00e764e42a99ad.tar.xz | |
Accept FS#7313 - make the menus talk more often
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13679 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/menu.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/apps/menu.c b/apps/menu.c index 8f0d131..8720ea6 100644 --- a/apps/menu.c +++ b/apps/menu.c @@ -391,6 +391,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) int stack_top = 0; bool in_stringlist, done = false; menu_callback_type menu_callback = NULL; + bool talk_item = false; if (start_menu == NULL) menu = &main_menu_; else menu = start_menu; @@ -413,6 +414,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) while (!done) { + talk_item = false; gui_syncstatusbar_draw(&statusbars, true); action = get_action(CONTEXT_MAINMENU,HZ); /* HZ so the status bar redraws corectly */ @@ -436,7 +438,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) if (gui_synclist_do_button(&lists,action,LIST_WRAP_UNLESS_HELD)) { - talk_menu_item(menu, &lists); + talk_item = true; } else if (action == ACTION_TREE_WPS) { @@ -477,9 +479,9 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) done = true; init_menu_lists(menu, &lists, menu_stack_selected_item[stack_top], false); - talk_menu_item(menu, &lists); /* new menu, so reload the callback */ get_menu_callback(menu, &menu_callback); + talk_item = true; } else if (menu != &root_menu_) { @@ -519,12 +521,13 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) stack_top++; init_menu_lists(temp, &lists, 0, true); menu = temp; - talk_menu_item(menu, &lists); + talk_item = true; } break; case MT_FUNCTION_CALL: { int return_value; + talk_item = true; action_signalscreenchange(); if (temp->flags&MENU_FUNC_USEPARAM) return_value = temp->function->function_w_param( @@ -546,6 +549,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) { if (do_setting_from_menu(temp)) init_menu_lists(menu, &lists, 0, true); + talk_item = true; break; } case MT_RETURN_ID: @@ -562,6 +566,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) stack_top++; menu = temp; init_menu_lists(menu,&lists,0,false); + talk_item = true; in_stringlist = true; } break; @@ -596,6 +601,8 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) ret = MENU_ATTACHED_USB; done = true; } + if (talk_item && !done) + talk_menu_item(menu, &lists); } action_signalscreenchange(); if (start_selected) |