summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2007-06-21 12:32:10 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2007-06-21 12:32:10 +0000
commit0baad43a935319d417f89f2c5c00e764e42a99ad (patch)
treececa9f4a049c13bd4cbbcc82ba4ca2607daa4dc7 /apps
parent3585ee7a3f5db5d635f5ce9a4a396a4242851da0 (diff)
downloadrockbox-0baad43a935319d417f89f2c5c00e764e42a99ad.tar.gz
rockbox-0baad43a935319d417f89f2c5c00e764e42a99ad.tar.bz2
rockbox-0baad43a935319d417f89f2c5c00e764e42a99ad.zip
Accept FS#7313 - make the menus talk more often
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13679 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/menu.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/apps/menu.c b/apps/menu.c
index 8f0d1318ef..8720ea6062 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)