From 5cab5dab0eeab112a742fc10eea5d491901a80af Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Wed, 7 Nov 2007 10:06:21 +0000 Subject: fix red fix Björn's name in the (c) fix FS#8105 - backing out of the submenus in the context menus shuoldnt leave the context menu completly (expect playlist which possibly makes sense?) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15513 a1c6a512-1295-4272-9138-f99709370657 --- apps/menu.c | 5 ++++- apps/screens.c | 2 +- apps/talk.h | 6 ------ 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/apps/menu.c b/apps/menu.c index c657c2c1ca..c8fc5f6264 100644 --- a/apps/menu.c +++ b/apps/menu.c @@ -411,17 +411,20 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected) } else if (action == ACTION_STD_CANCEL) { + bool exiting_menu = false; in_stringlist = false; if (menu_callback) menu_callback(ACTION_EXIT_MENUITEM, menu); if (menu->flags&MENU_EXITAFTERTHISMENU) done = true; + else if ((menu->flags&MENU_TYPE_MASK) == MT_MENU) + exiting_menu = true; if (stack_top > 0) { stack_top--; menu = menu_stack[stack_top]; - if (menu->flags&MENU_EXITAFTERTHISMENU) + if (!exiting_menu && (menu->flags&MENU_EXITAFTERTHISMENU)) done = true; else init_menu_lists(menu, &lists, diff --git a/apps/screens.c b/apps/screens.c index 642d523c1d..67f7f7eb37 100644 --- a/apps/screens.c +++ b/apps/screens.c @@ -7,7 +7,7 @@ * \/ \/ \/ \/ \/ * $Id$ * - * Copyright (C) 2002 Bj�rn Stenberg + * Copyright (C) 2002 Björn Stenberg * * All files in this archive are subject to the GNU General Public License. * See the file COPYING in the source tree root for full license agreement. diff --git a/apps/talk.h b/apps/talk.h index 50759bc026..8fe834cb09 100644 --- a/apps/talk.h +++ b/apps/talk.h @@ -80,14 +80,8 @@ void talk_force_shutup(void); /* kill voice unconditionally */ void talk_shutup(void); /* Interrupt voice, as when enqueue is false */ #if CONFIG_RTC -/* this is in talk.c which isnt compiled for hwcodec simulator */ -#if !defined(SIMULATOR) || CONFIG_CODEC == SWCODEC void talk_time(struct tm *tm, bool enqueue); void talk_date(struct tm *tm, bool enqueue); -#else -#define talk_date(t, e) -#define talk_time(t, e) -#endif #endif /* CONFIG_RTC */ /* This (otherwise invalid) ID signals the end of the array. */ -- cgit