From ff40e97377fd2dac75df6ebd80bf81b23706e5dd Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 28 Oct 2014 19:08:18 +0100 Subject: [PATCH] Refactor menu_action_setting_set --- frontend/menu/menu_action.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/frontend/menu/menu_action.c b/frontend/menu/menu_action.c index ff5d57ebf9..9dffbd9376 100644 --- a/frontend/menu/menu_action.c +++ b/frontend/menu/menu_action.c @@ -164,8 +164,7 @@ int menu_action_handle_setting(rarch_setting_t *setting, return 0; } -int menu_action_setting_set(unsigned type, const char *label, - unsigned action) +static rarch_setting_t *find_setting(void) { const file_list_t *list = (const file_list_t*)driver.menu->menu_list->selection_buf; @@ -174,13 +173,21 @@ int menu_action_setting_set(unsigned type, const char *label, rarch_setting_t *setting = (rarch_setting_t*)setting_data_find_setting( driver.menu->list_settings, list->list[driver.menu->selection_ptr].label); - if (setting) - return menu_action_handle_setting(setting, type, action); + if (!setting) + { + /* Check if setting belongs to main menu. */ - /* Check if setting belongs to main menu. */ + setting = (rarch_setting_t*)setting_data_find_setting( + driver.menu->list_mainmenu, list->list[driver.menu->selection_ptr].label); + } - setting = (rarch_setting_t*)setting_data_find_setting( - driver.menu->list_mainmenu, list->list[driver.menu->selection_ptr].label); + return setting; +} + +int menu_action_setting_set(unsigned type, const char *label, + unsigned action) +{ + rarch_setting_t *setting = find_setting(); if (setting) return menu_action_handle_setting(setting, type, action);