diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 9029c61249..4cdd2ef624 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -2061,27 +2061,29 @@ static bool menu_init(menu_handle_t *menu_data) if ( settings->bools.bundle_assets_extract_enable && !string_is_empty(settings->arrays.bundle_assets_src) && !string_is_empty(settings->arrays.bundle_assets_dst) -#ifdef IOS - && menu_dialog_is_push_pending() -#else +#ifndef IOS + /* TODO/FIXME - we should make this more generic so that + * this platform-specific ifdef is no longer needed */ && (settings->uints.bundle_assets_extract_version_current != settings->uints.bundle_assets_extract_last_version) #endif ) { - menu_dialog_push_pending(true, MENU_DIALOG_HELP_EXTRACT); + if (menu_dialog_push_pending(true, MENU_DIALOG_HELP_EXTRACT)) + { #ifdef HAVE_COMPRESSION - task_push_decompress( - settings->arrays.bundle_assets_src, - settings->arrays.bundle_assets_dst, - NULL, - settings->arrays.bundle_assets_dst_subdir, - NULL, - bundle_decompressed, - NULL, - NULL, - false); + task_push_decompress( + settings->arrays.bundle_assets_src, + settings->arrays.bundle_assets_dst, + NULL, + settings->arrays.bundle_assets_dst_subdir, + NULL, + bundle_decompressed, + NULL, + NULL, + false); #endif + } } #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) diff --git a/menu/widgets/menu_dialog.c b/menu/widgets/menu_dialog.c index 137261e3cf..1f0260e8fa 100644 --- a/menu/widgets/menu_dialog.c +++ b/menu/widgets/menu_dialog.c @@ -241,21 +241,26 @@ int menu_dialog_iterate(char *s, size_t len, const char *label, return 0; } -bool menu_dialog_is_push_pending(void) -{ - return menu_dialog_pending_push; -} - void menu_dialog_unset_pending_push(void) { menu_dialog_pending_push = false; } -void menu_dialog_push_pending(bool push, enum menu_dialog_type type) +bool menu_dialog_push_pending(bool push, enum menu_dialog_type type) { +#ifdef IOS + /* TODO/FIXME - see comment in menu_init - + * we should make this more generic so that + * this platform-specific ifdef is no longer needed */ + if (type == MENU_DIALOG_HELP_EXTRACT) + if (!menu_dialog_pending_push) + return false; +#endif menu_dialog_pending_push = push; menu_dialog_current_type = type; - menu_dialog_active = true; + menu_dialog_active = true; + + return true; } void menu_dialog_push(void) @@ -263,7 +268,7 @@ void menu_dialog_push(void) menu_displaylist_info_t info; const char *label; - if (!menu_dialog_is_push_pending()) + if (!menu_dialog_pending_push) return; menu_displaylist_info_init(&info); diff --git a/menu/widgets/menu_dialog.h b/menu/widgets/menu_dialog.h index 921bb54617..0fe84f90fe 100644 --- a/menu/widgets/menu_dialog.h +++ b/menu/widgets/menu_dialog.h @@ -50,7 +50,7 @@ enum menu_dialog_type RETRO_BEGIN_DECLS -void menu_dialog_push_pending( +bool menu_dialog_push_pending( bool push, enum menu_dialog_type type); int menu_dialog_iterate( @@ -59,8 +59,6 @@ int menu_dialog_iterate( void menu_dialog_unset_pending_push(void); -bool menu_dialog_is_push_pending(void); - void menu_dialog_push(void); void menu_dialog_reset(void);