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.tar.gz
rockbox-49984facc138bc705fa0ee8d6322ef006ad40f62.zip
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 4b871bb293..67a1620a12 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -260,7 +260,12 @@ Menu menu_run(int m)
260 are gonna clear the screen anyway */ 260 are gonna clear the screen anyway */
261 lcd_clear_display(); 261 lcd_clear_display();
262 262
263 menus[m].items[menus[m].cursor].function(); 263 /* if a child returns that the contents is changed, we
264 must remember this, even if we perhaps invoke other
265 children too before returning back */
266 if(MENU_DISK_CHANGED ==
267 menus[m].items[menus[m].cursor].function())
268 result = MENU_DISK_CHANGED;
264 269
265 /* Return to previous display state */ 270 /* Return to previous display state */
266 menu_draw(m); 271 menu_draw(m);
@@ -293,12 +298,12 @@ Menu menu_run(int m)
293#endif 298#endif
294 usb_acknowledge(SYS_USB_CONNECTED_ACK); 299 usb_acknowledge(SYS_USB_CONNECTED_ACK);
295 usb_wait_for_disconnect(&button_queue); 300 usb_wait_for_disconnect(&button_queue);
296 menu_draw(m);
297#ifdef HAVE_LCD_BITMAP 301#ifdef HAVE_LCD_BITMAP
298 statusbar(laststate); 302 statusbar(laststate);
299#else 303#else
300 lcd_icon(ICON_PARAM, true); 304 lcd_icon(ICON_PARAM, true);
301#endif 305#endif
306 menu_draw(m);
302 result = MENU_DISK_CHANGED; 307 result = MENU_DISK_CHANGED;
303 break; 308 break;
304#endif 309#endif