summaryrefslogtreecommitdiff
path: root/apps/menu.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2002-08-23 12:57:00 +0000
committerDaniel Stenberg <daniel@haxx.se>2002-08-23 12:57:00 +0000
commit49984facc138bc705fa0ee8d6322ef006ad40f62 (patch)
tree338a40428ec79e2ef5fb850f1de195c5ed258268 /apps/menu.c
parentd7c85e434bc08dc4c2430a97643c84edc0efa491 (diff)
downloadrockbox-49984facc138bc705fa0ee8d6322ef006ad40f62.zip
rockbox-49984facc138bc705fa0ee8d6322ef006ad40f62.tar.gz
rockbox-49984facc138bc705fa0ee8d6322ef006ad40f62.tar.bz2
rockbox-49984facc138bc705fa0ee8d6322ef006ad40f62.tar.xz
properly remember DISK_CHANGE status and return that to menu parents,
also when coming back from the USB screen set back the status bar state before redrawing the menu. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1953 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/menu.c')
-rw-r--r--apps/menu.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/apps/menu.c b/apps/menu.c
index 4b871bb..67a1620 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -260,7 +260,12 @@ Menu menu_run(int m)
are gonna clear the screen anyway */
lcd_clear_display();
- menus[m].items[menus[m].cursor].function();
+ /* if a child returns that the contents is changed, we
+ must remember this, even if we perhaps invoke other
+ children too before returning back */
+ if(MENU_DISK_CHANGED ==
+ menus[m].items[menus[m].cursor].function())
+ result = MENU_DISK_CHANGED;
/* Return to previous display state */
menu_draw(m);
@@ -293,12 +298,12 @@ Menu menu_run(int m)
#endif
usb_acknowledge(SYS_USB_CONNECTED_ACK);
usb_wait_for_disconnect(&button_queue);
- menu_draw(m);
#ifdef HAVE_LCD_BITMAP
statusbar(laststate);
#else
lcd_icon(ICON_PARAM, true);
#endif
+ menu_draw(m);
result = MENU_DISK_CHANGED;
break;
#endif