From 46f9b325f877f230b2ed9daf99f888c203ad74e2 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 18 Oct 2014 01:44:06 +0200 Subject: [PATCH] Refactor menu_list_pop_stack functions --- frontend/menu/backend/menu_common_backend.c | 22 +++++++++++---------- frontend/menu/menu_entries_cbs.c | 6 +++--- frontend/menu/menu_list.c | 14 ++++++------- frontend/menu/menu_list.h | 4 ++-- 4 files changed, 24 insertions(+), 22 deletions(-) diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index 07aa97af32..c07d62131f 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -42,7 +42,7 @@ static int menu_message_toggle(unsigned action) driver.menu_ctx->render_messagebox(driver.menu->message_contents); if (action == MENU_ACTION_OK) - menu_list_pop_stack(driver.menu->menu_list->menu_stack); + menu_list_pop_stack(driver.menu->menu_list); return 0; } @@ -95,7 +95,7 @@ static int menu_info_screen_iterate(unsigned action) } if (action == MENU_ACTION_OK) - menu_list_pop_stack(driver.menu->menu_list->menu_stack); + menu_list_pop_stack(driver.menu->menu_list); return 0; } @@ -181,7 +181,7 @@ static int menu_start_screen_iterate(unsigned action) driver.menu_ctx->render_messagebox(msg); if (action == MENU_ACTION_OK) - menu_list_pop_stack(driver.menu->menu_list->menu_stack); + menu_list_pop_stack(driver.menu->menu_list); return 0; } @@ -220,7 +220,7 @@ static int menu_settings_iterate(unsigned action, case MENU_ACTION_CANCEL: apply_deferred_settings(); - menu_list_pop_stack(driver.menu->menu_list->menu_stack); + menu_list_pop_stack(driver.menu->menu_list); break; case MENU_ACTION_SELECT: menu_list_push_stack(driver.menu->menu_list, "", "info_screen", @@ -349,7 +349,8 @@ static int menu_viewport_iterate(unsigned action) break; case MENU_ACTION_CANCEL: - menu_list_pop_stack(driver.menu->menu_list->menu_stack); + menu_list_pop_stack(driver.menu->menu_list); + if (!strcmp(label, "custom_viewport_2")) { menu_list_push_stack(driver.menu->menu_list, "", "", @@ -359,7 +360,8 @@ static int menu_viewport_iterate(unsigned action) break; case MENU_ACTION_OK: - menu_list_pop_stack(driver.menu->menu_list->menu_stack); + menu_list_pop_stack(driver.menu->menu_list); + if (type == MENU_SETTINGS_CUSTOM_VIEWPORT && !g_settings.video.scale_integer) { @@ -483,7 +485,7 @@ static int menu_load_or_open_zip_iterate(unsigned action) { case MENU_ACTION_OK: case MENU_ACTION_CANCEL: - menu_list_pop_stack(driver.menu->menu_list->menu_stack); + menu_list_pop_stack(driver.menu->menu_list); menu_list_get_last_stack(driver.menu->menu_list->menu_stack, &menu_path, &menu_label, NULL); @@ -570,13 +572,13 @@ static int menu_common_iterate(unsigned action) else if (type == MENU_SETTINGS_CUSTOM_BIND) { if (menu_input_bind_iterate(driver.menu)) - menu_list_pop_stack(driver.menu->menu_list->menu_stack); + menu_list_pop_stack(driver.menu->menu_list); return 0; } else if (type == MENU_SETTINGS_CUSTOM_BIND_KEYBOARD) { if (menu_input_bind_iterate_keyboard(driver.menu)) - menu_list_pop_stack(driver.menu->menu_list->menu_stack); + menu_list_pop_stack(driver.menu->menu_list); return 0; } @@ -629,7 +631,7 @@ static int menu_common_iterate(unsigned action) break; case MENU_ACTION_CANCEL: - menu_list_pop_stack(driver.menu->menu_list->menu_stack); + menu_list_pop_stack(driver.menu->menu_list); break; case MENU_ACTION_OK: diff --git a/frontend/menu/menu_entries_cbs.c b/frontend/menu/menu_entries_cbs.c index 9088df62a9..bec2029f5e 100644 --- a/frontend/menu/menu_entries_cbs.c +++ b/frontend/menu/menu_entries_cbs.c @@ -271,7 +271,7 @@ static int action_ok_path_use_directory(const char *path, if (setting->type == ST_DIR) { menu_action_setting_set_current_string(setting, menu_path); - menu_list_pop_stack_by_needle(driver.menu->menu_list->menu_stack, setting->name); + menu_list_pop_stack_by_needle(driver.menu->menu_list, setting->name); } return 0; @@ -479,7 +479,7 @@ static int action_ok_file_load(const char *path, if (setting && setting->type == ST_PATH) { menu_action_setting_set_current_string_path(setting, menu_path, path); - menu_list_pop_stack_by_needle(driver.menu->menu_list->menu_stack, setting->name); + menu_list_pop_stack_by_needle(driver.menu->menu_list, setting->name); } else { @@ -521,7 +521,7 @@ static int action_ok_set_path(const char *path, return -1; menu_action_setting_set_current_string_path(setting, menu_path, path); - menu_list_pop_stack_by_needle(driver.menu->menu_list->menu_stack, setting->name); + menu_list_pop_stack_by_needle(driver.menu->menu_list, setting->name); return 0; } diff --git a/frontend/menu/menu_list.c b/frontend/menu/menu_list.c index d46a1328e0..a7dde4c934 100644 --- a/frontend/menu/menu_list.c +++ b/frontend/menu/menu_list.c @@ -155,19 +155,19 @@ void menu_list_flush_stack_by_needle(menu_list_t *list, } } -void menu_list_pop_stack(file_list_t *list) +void menu_list_pop_stack(menu_list_t *list) { if (!list) return; - if (file_list_get_size(list) > 1) + if (file_list_get_size(list->menu_stack) > 1) { - menu_list_pop(list, &driver.menu->selection_ptr); + menu_list_pop(list->menu_stack, &driver.menu->selection_ptr); driver.menu->need_refresh = true; } } -void menu_list_pop_stack_by_needle(file_list_t *list, +void menu_list_pop_stack_by_needle(menu_list_t *list, const char *needle) { const char *path = NULL; @@ -178,11 +178,11 @@ void menu_list_pop_stack_by_needle(file_list_t *list, return; driver.menu->need_refresh = true; - file_list_get_last(list, &path, &label, &type); + file_list_get_last(list->menu_stack, &path, &label, &type); while (strcmp(needle, label) == 0) { - menu_list_pop(list, &driver.menu->selection_ptr); - file_list_get_last(list, &path, &label, &type); + menu_list_pop(list->menu_stack, &driver.menu->selection_ptr); + file_list_get_last(list->menu_stack, &path, &label, &type); } } diff --git a/frontend/menu/menu_list.h b/frontend/menu/menu_list.h index 7a72ca7031..8279c28676 100644 --- a/frontend/menu/menu_list.h +++ b/frontend/menu/menu_list.h @@ -43,9 +43,9 @@ void menu_list_flush_stack_by_needle(menu_list_t *list, void menu_list_pop(file_list_t *list, size_t *directory_ptr); -void menu_list_pop_stack(file_list_t *list); +void menu_list_pop_stack(menu_list_t *list); -void menu_list_pop_stack_by_needle(file_list_t *list, +void menu_list_pop_stack_by_needle(menu_list_t *list, const char *needle); void menu_list_get_at_offset(const file_list_t *list, size_t index,