summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/menu.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/apps/menu.c b/apps/menu.c
index dd5a23b933..4b71cbf40a 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -74,6 +74,7 @@ static void menu_talk_selected(int m);
74 74
75/* used to allow for dynamic menus */ 75/* used to allow for dynamic menus */
76#define MAX_MENU_SUBITEMS 64 76#define MAX_MENU_SUBITEMS 64
77static struct menu_item_ex *current_submenus_menu;
77static int current_subitems[MAX_MENU_SUBITEMS]; 78static int current_subitems[MAX_MENU_SUBITEMS];
78static int current_subitems_count = 0; 79static int current_subitems_count = 0;
79 80
@@ -204,7 +205,8 @@ static void init_menu_lists(const struct menu_item_ex *menu,
204 current_subitems_count++; 205 current_subitems_count++;
205 } 206 }
206 } 207 }
207 208 current_submenus_menu = menu;
209
208 gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1); 210 gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1);
209#ifdef HAVE_LCD_BITMAP 211#ifdef HAVE_LCD_BITMAP
210 if (menu->callback_and_desc->icon_id == Icon_NOICON) 212 if (menu->callback_and_desc->icon_id == Icon_NOICON)
@@ -589,6 +591,8 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
589 } 591 }
590 if (type != MT_MENU && menu_callback) 592 if (type != MT_MENU && menu_callback)
591 menu_callback(ACTION_EXIT_MENUITEM,temp); 593 menu_callback(ACTION_EXIT_MENUITEM,temp);
594 if (current_submenus_menu != menu)
595 init_menu_lists(menu,&lists,selected,true);
592 /* callback was changed, so reload the menu's callback */ 596 /* callback was changed, so reload the menu's callback */
593 get_menu_callback(menu, &menu_callback); 597 get_menu_callback(menu, &menu_callback);
594#ifdef HAS_BUTTONBAR 598#ifdef HAS_BUTTONBAR