diff --git a/apps/settings_menu.c b/apps/settings_menu.c index 6cdf2626e0..5f5c29f1f4 100644 --- a/apps/settings_menu.c +++ b/apps/settings_menu.c @@ -52,6 +52,9 @@ void dac_line_in(bool enable); #include "alarm_menu.h" #endif +/* This flag is set by dirbrowse() if a new language is loaded */ +bool language_changed; + static bool car_adapter_mode(void) { return set_bool_options( str(LANG_CAR_ADAPTER_MODE), @@ -873,7 +876,9 @@ static bool custom_cfg_browse(void) static bool language_browse(void) { - return rockbox_browse(ROCKBOX_DIR LANG_DIR, SHOW_LNG); + language_changed = false; + rockbox_browse(ROCKBOX_DIR LANG_DIR, SHOW_LNG); + return language_changed; } static bool voice_menus(void) diff --git a/apps/tree.c b/apps/tree.c index 8417e9a65e..afdef29228 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -64,6 +64,10 @@ #define BOOTFILE "archos.mod" #endif +/* This flag is set by dirbrowse() if a new language is loaded. + It is defined in settings_menu.c */ +extern bool language_changed; + /* a table for the know file types */ static struct { @@ -1179,6 +1183,8 @@ static bool dirbrowse(char *root, int *dirfilter) talk_init(); /* use voice of same language */ splash(HZ, true, str(LANG_LANGUAGE_LOADED)); restore = true; + + language_changed = true; } break;