diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index d19808ae75..a4eb7b1395 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -2020,7 +2020,7 @@ static int (funcname)(void *data, const char *path, const char *label, unsigned line.type = type; \ line.idx = (_idx); \ line.cb = _cb; \ - if (!menu_input_dialog_start(&line)) \ + if (!menu_input_dialog_start(&line, data)) \ return -1; \ return 0; \ } @@ -3986,7 +3986,7 @@ static int action_ok_netplay_enable_client(void *data, line.idx = 0; line.cb = action_ok_netplay_enable_client_hostname_cb; - if (menu_input_dialog_start(&line)) + if (menu_input_dialog_start(&line, data)) return 0; #endif return -1; diff --git a/menu/drivers/menu_generic.c b/menu/drivers/menu_generic.c index 3add7400e2..aa091bdd10 100644 --- a/menu/drivers/menu_generic.c +++ b/menu/drivers/menu_generic.c @@ -238,7 +238,7 @@ int generic_menu_iterate(void *data, void *userdata, enum menu_action action) BIT64_SET(menu->state, MENU_STATE_POST_ITERATE); /* Have to defer it so we let settings refresh. */ - menu_dialog_push(); + menu_dialog_push(menu); } break; } diff --git a/menu/widgets/menu_dialog.c b/menu/widgets/menu_dialog.c index 23aebda618..0c42557094 100644 --- a/menu/widgets/menu_dialog.c +++ b/menu/widgets/menu_dialog.c @@ -252,7 +252,7 @@ void menu_dialog_push_pending(bool push, enum menu_dialog_type type) menu_dialog_active = true; } -void menu_dialog_push(void) +void menu_dialog_push(void *data) { menu_displaylist_info_t info; const char *label = NULL; @@ -271,9 +271,7 @@ void menu_dialog_push(void) if (label) info.label = strdup(label); - menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu); - - menu_displaylist_ctl(DISPLAYLIST_HELP, &info, menu); + menu_displaylist_ctl(DISPLAYLIST_HELP, &info, data); } void menu_dialog_set_current_id(unsigned id) @@ -291,18 +289,6 @@ void menu_dialog_reset(void) menu_display_toggle_set_reason(MENU_TOGGLE_REASON_NONE); } -void menu_dialog_show_message( - enum menu_dialog_type type, enum msg_hash_enums msg) -{ - menu_dialog_current_msg = msg; - - if (!menu_driver_ctl(RARCH_MENU_CTL_IS_TOGGLE, NULL)) - menu_display_toggle_set_reason(MENU_TOGGLE_REASON_MESSAGE); - - menu_dialog_push_pending(true, type); - menu_dialog_push(); -} - bool menu_dialog_is_active(void) { return menu_dialog_active; diff --git a/menu/widgets/menu_dialog.h b/menu/widgets/menu_dialog.h index b692fe3138..0df01e8202 100644 --- a/menu/widgets/menu_dialog.h +++ b/menu/widgets/menu_dialog.h @@ -59,13 +59,10 @@ void menu_dialog_unset_pending_push(void); bool menu_dialog_is_push_pending(void); -void menu_dialog_push(void); +void menu_dialog_push(void *data); void menu_dialog_reset(void); -void menu_dialog_show_message( - enum menu_dialog_type type, enum msg_hash_enums msg); - bool menu_dialog_is_active(void); void menu_dialog_set_current_id(unsigned id); diff --git a/menu/widgets/menu_input_dialog.c b/menu/widgets/menu_input_dialog.c index 79af78a1a3..ca33931fd9 100644 --- a/menu/widgets/menu_input_dialog.c +++ b/menu/widgets/menu_input_dialog.c @@ -119,12 +119,13 @@ bool menu_input_dialog_start_search(void *data) return true; } -bool menu_input_dialog_start(menu_input_ctx_line_t *line) +bool menu_input_dialog_start(menu_input_ctx_line_t *line, + void *data) { - menu_handle_t *menu = NULL; + menu_handle_t *menu = (menu_handle_t*)data; if (!line) return false; - if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu)) + if (!menu) return false; menu_input_dialog_display_kb(); @@ -135,7 +136,8 @@ bool menu_input_dialog_start(menu_input_ctx_line_t *line) sizeof(menu_input_dialog_keyboard_label)); if (line->label_setting) strlcpy(menu_input_dialog_keyboard_label_setting, - line->label_setting, sizeof(menu_input_dialog_keyboard_label_setting)); + line->label_setting, + sizeof(menu_input_dialog_keyboard_label_setting)); menu_input_dialog_keyboard_type = line->type; menu_input_dialog_keyboard_idx = line->idx; diff --git a/menu/widgets/menu_input_dialog.h b/menu/widgets/menu_input_dialog.h index cb6cc8e3ca..0c4b8187a0 100644 --- a/menu/widgets/menu_input_dialog.h +++ b/menu/widgets/menu_input_dialog.h @@ -55,7 +55,8 @@ void menu_input_dialog_display_kb(void); bool menu_input_dialog_get_display_kb(void); -bool menu_input_dialog_start(menu_input_ctx_line_t *line); +bool menu_input_dialog_start(menu_input_ctx_line_t *line, + void *data); void menu_input_dialog_end(void); diff --git a/network/netplay/netplay_handshake.c b/network/netplay/netplay_handshake.c index 021b51d35c..48ceedfbf0 100644 --- a/network/netplay/netplay_handshake.c +++ b/network/netplay/netplay_handshake.c @@ -37,6 +37,7 @@ #include "../../version.h" #ifdef HAVE_MENU +#include "../../menu/menu_driver.h" #include "../../menu/widgets/menu_input_dialog.h" #endif @@ -415,6 +416,8 @@ bool netplay_handshake_init(netplay_t *netplay, { #ifdef HAVE_MENU menu_input_ctx_line_t line; + menu_handle_t *menu = NULL; + rarch_menu_running(); #endif @@ -425,7 +428,10 @@ bool netplay_handshake_init(netplay_t *netplay, line.label = msg_hash_to_str(MSG_NETPLAY_ENTER_PASSWORD); line.label_setting = "no_setting"; line.cb = handshake_password; - if (!menu_input_dialog_start(&line)) + + menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu); + + if (menu && !menu_input_dialog_start(&line, menu)) return false; #endif } diff --git a/setting_list.c b/setting_list.c index 254bd62e38..eb7047360d 100644 --- a/setting_list.c +++ b/setting_list.c @@ -2004,6 +2004,7 @@ static void menu_input_st_hex_cb(void *userdata, const char *str) static int setting_generic_action_ok_linefeed(void *data, bool wraparound) { menu_input_ctx_line_t line; + menu_handle_t *menu = NULL; input_keyboard_line_complete_t cb = NULL; rarch_setting_t *setting = (rarch_setting_t*)data; @@ -2034,7 +2035,9 @@ static int setting_generic_action_ok_linefeed(void *data, bool wraparound) line.idx = 0; line.cb = cb; - if (!menu_input_dialog_start(&line)) + menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu); + + if (!menu || !menu_input_dialog_start(&line, menu)) return -1; return 0;