From 5cab5dab0eeab112a742fc10eea5d491901a80af Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Wed, 7 Nov 2007 10:06:21 +0000 Subject: =?UTF-8?q?fix=20red=20fix=20Bj=C3=B6rn's=20name=20in=20the=20(c)?= =?UTF-8?q?=20fix=20FS#8105=20-=20backing=20out=20of=20the=20submenus=20in?= =?UTF-8?q?=20the=20context=20menus=20shuoldnt=20leave=20the=20context=20m?= =?UTF-8?q?enu=20completly=20(expect=20playlist=20which=20possibly=20makes?= =?UTF-8?q?=20sense=3F)?= 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 c657c2c..c8fc5f6 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 642d523..67f7f7e 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 50759bc..8fe834c 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 v1.1