summaryrefslogtreecommitdiffstats
path: root/apps/menu.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2007-07-11 04:17:43 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2007-07-11 04:17:43 +0000
commit50dc0cabe3bfa3aeee1cba40d1e31c69a073227f (patch)
tree68013fa375991873218c930e6758ced12585bc3a /apps/menu.c
parent953e7cf183c9ee95feea249b4f04d30d067515b0 (diff)
downloadrockbox-50dc0cabe3bfa3aeee1cba40d1e31c69a073227f.tar.gz
rockbox-50dc0cabe3bfa3aeee1cba40d1e31c69a073227f.tar.bz2
rockbox-50dc0cabe3bfa3aeee1cba40d1e31c69a073227f.zip
same as previous commit, but more forgotten cases
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13850 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/menu.c')
-rw-r--r--apps/menu.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/apps/menu.c b/apps/menu.c
index ab7540bd78..37d28eb12c 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -506,6 +506,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
#endif
selected = get_menu_selection(gui_synclist_get_sel_pos(&lists), menu);
temp = menu->submenus[selected];
+ redraw_lists = true;
if (in_stringlist)
type = (menu->flags&MENU_TYPE_MASK);
else
@@ -528,6 +529,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
menu_stack_selected_item[stack_top] = selected;
stack_top++;
init_menu_lists(temp, &lists, 0, true);
+ redraw_lists = false; /* above does the redraw */
menu = temp;
talk_item = true;
}
@@ -555,8 +557,11 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
case MT_SETTING:
case MT_SETTING_W_TEXT:
{
- do_setting_from_menu(temp);
- init_menu_lists(menu, &lists, selected, true);
+ if (do_setting_from_menu(temp))
+ {
+ init_menu_lists(menu, &lists, selected, true);
+ redraw_lists = false; /* above does the redraw */
+ }
talk_item = true;
break;
}
@@ -574,6 +579,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);
+ redraw_lists = false; /* above does the redraw */
talk_item = true;
in_stringlist = true;
}