diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/menu.c | 10 |
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) | |||
506 | #endif | 506 | #endif |
507 | selected = get_menu_selection(gui_synclist_get_sel_pos(&lists), menu); | 507 | selected = get_menu_selection(gui_synclist_get_sel_pos(&lists), menu); |
508 | temp = menu->submenus[selected]; | 508 | temp = menu->submenus[selected]; |
509 | redraw_lists = true; | ||
509 | if (in_stringlist) | 510 | if (in_stringlist) |
510 | type = (menu->flags&MENU_TYPE_MASK); | 511 | type = (menu->flags&MENU_TYPE_MASK); |
511 | else | 512 | else |
@@ -528,6 +529,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) | |||
528 | menu_stack_selected_item[stack_top] = selected; | 529 | menu_stack_selected_item[stack_top] = selected; |
529 | stack_top++; | 530 | stack_top++; |
530 | init_menu_lists(temp, &lists, 0, true); | 531 | init_menu_lists(temp, &lists, 0, true); |
532 | redraw_lists = false; /* above does the redraw */ | ||
531 | menu = temp; | 533 | menu = temp; |
532 | talk_item = true; | 534 | talk_item = true; |
533 | } | 535 | } |
@@ -555,8 +557,11 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) | |||
555 | case MT_SETTING: | 557 | case MT_SETTING: |
556 | case MT_SETTING_W_TEXT: | 558 | case MT_SETTING_W_TEXT: |
557 | { | 559 | { |
558 | do_setting_from_menu(temp); | 560 | if (do_setting_from_menu(temp)) |
559 | init_menu_lists(menu, &lists, selected, true); | 561 | { |
562 | init_menu_lists(menu, &lists, selected, true); | ||
563 | redraw_lists = false; /* above does the redraw */ | ||
564 | } | ||
560 | talk_item = true; | 565 | talk_item = true; |
561 | break; | 566 | break; |
562 | } | 567 | } |
@@ -574,6 +579,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) | |||
574 | stack_top++; | 579 | stack_top++; |
575 | menu = temp; | 580 | menu = temp; |
576 | init_menu_lists(menu,&lists,0,false); | 581 | init_menu_lists(menu,&lists,0,false); |
582 | redraw_lists = false; /* above does the redraw */ | ||
577 | talk_item = true; | 583 | talk_item = true; |
578 | in_stringlist = true; | 584 | in_stringlist = true; |
579 | } | 585 | } |