diff options
-rw-r--r-- | apps/menu.c | 9 |
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 |