diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 5170e17775..850294d3b0 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1485,11 +1485,9 @@ static void menu_input_st_string_cb_save_preset(void *userdata, { if (str && *str) { - rarch_setting_t *setting = NULL; - const char *label = NULL; - bool ret = false; - - menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, &label); + rarch_setting_t *setting = NULL; + bool ret = false; + const char *label = menu_input_dialog_get_label_buffer(); if (!string_is_empty(label)) setting = menu_setting_find(label); @@ -1616,10 +1614,8 @@ static void menu_input_st_string_cb_cheat_file_save_as( { if (str && *str) { - rarch_setting_t *setting = NULL; - const char *label = NULL; - - menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, &label); + rarch_setting_t *setting = NULL; + const char *label = menu_input_dialog_get_label_buffer(); if (!string_is_empty(label)) setting = menu_setting_find(label); diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index c14fe56774..430a7bdfa8 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1205,13 +1205,9 @@ static void mui_frame(void *data) if (menu_input_dialog_get_display_kb()) { - const char *label = NULL; const char *str = menu_input_dialog_get_buffer(); + const char *label = menu_input_dialog_get_label_buffer(); - menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL, &label); - - if (!str) - str = ""; mui_render_quad(mui, 0, 0, width, height, width, height, &black_bg[0]); snprintf(msg, sizeof(msg), "%s\n%s", label, str); mui_render_messagebox(mui, msg, &body_bg_color[0], font_hover_color); diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 306acc9838..6f1f584330 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -611,10 +611,8 @@ static void rgui_render(void *data) if (menu_input_dialog_get_display_kb()) { - const char *label = NULL; const char *str = menu_input_dialog_get_buffer(); - - menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL, &label); + const char *label = menu_input_dialog_get_label_buffer(); snprintf(msg, sizeof(msg), "%s\n%s", label, str); rgui_render_messagebox(msg); diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index c55818fc87..5afdf65b72 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2366,13 +2366,9 @@ static void xmb_frame(void *data) if (menu_input_dialog_get_display_kb()) { - const char *label = NULL; const char *str = menu_input_dialog_get_buffer(); + const char *label = menu_input_dialog_get_label_buffer(); - menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL, &label); - - if (!str) - str = ""; snprintf(msg, sizeof(msg), "%s\n%s", label, str); render_background = true; } diff --git a/menu/drivers/xui.cpp b/menu/drivers/xui.cpp index d9ad4f6fb4..d7eb9c09bd 100644 --- a/menu/drivers/xui.cpp +++ b/menu/drivers/xui.cpp @@ -526,10 +526,10 @@ static void xui_set_list_text(int index, const wchar_t* leftText, static void xui_render(void *data) { uint64_t *frame_count; - bool display_kb, msg_force; unsigned fb_width; size_t end, i, selection; char title[PATH_MAX_LENGTH] = {0}; + bool msg_force = false; const char *dir = NULL; const char *label = NULL; unsigned menu_type = 0; @@ -584,22 +584,18 @@ static void xui_render(void *data) mbstowcs(msg_right, entry_value, sizeof(msg_right) / sizeof(wchar_t)); xui_set_list_text(i, msg_left, msg_right); } + if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection)) return; + XuiListSetCurSelVisible(m_menulist, selection); - menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_DISPLAY, &display_kb); - - if (display_kb) + if (menu_input_dialog_get_display_kb()) { char msg[1024] = {0}; - const char *label = NULL; const char *str = menu_input_dialog_get_buffer(); + const char *label = menu_input_dialog_get_label_buffer(); - menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL, &label); - - if (!str) - str = ""; snprintf(msg, sizeof(msg), "%s\n%s", label, str); xui_render_messagebox(msg); } diff --git a/menu/menu_input.c b/menu/menu_input.c index 48d967ddff..46376b0417 100644 --- a/menu/menu_input.c +++ b/menu/menu_input.c @@ -190,12 +190,9 @@ void menu_input_st_uint_cb(void *userdata, const char *str) { if (str && *str) { - rarch_setting_t *setting = NULL; - const char *label = NULL; + const char *label = menu_input_dialog_get_label_buffer(); + rarch_setting_t *setting = menu_setting_find(label); - menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, &label); - - setting = menu_setting_find(label); setting_set_with_string_representation(setting, str); } @@ -206,12 +203,8 @@ void menu_input_st_hex_cb(void *userdata, const char *str) { if (str && *str) { - rarch_setting_t *setting = NULL; - const char *label = NULL; - - menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, &label); - - setting = menu_setting_find(label); + const char *label = menu_input_dialog_get_label_buffer(); + rarch_setting_t *setting = menu_setting_find(label); if (setting) { @@ -648,6 +641,8 @@ bool menu_input_mouse_check_vector_inside_hitbox(menu_input_ctx_hitbox_t *hitbox const char *menu_input_dialog_get_buffer(void) { + if (!(*menu_input_keyboard_buffer)) + return ""; return *menu_input_keyboard_buffer; } @@ -708,18 +703,6 @@ bool menu_input_ctl(enum menu_input_ctl_state state, void *data) case MENU_INPUT_CTL_UNSET_POINTER_DRAGGED: pointer_dragging = false; break; - case MENU_INPUT_CTL_KEYBOARD_LABEL: - { - const char **ptr = (const char**)data; - *ptr = menu_input_keyboard_label; - } - break; - case MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING: - { - const char **ptr = (const char**)data; - *ptr = menu_input_keyboard_label_setting; - } - break; case MENU_INPUT_CTL_BIND_NONE: case MENU_INPUT_CTL_BIND_SINGLE: case MENU_INPUT_CTL_BIND_ALL: diff --git a/menu/menu_input.h b/menu/menu_input.h index 2c31b03379..23798c8ecf 100644 --- a/menu/menu_input.h +++ b/menu/menu_input.h @@ -76,8 +76,6 @@ enum menu_input_ctl_state MENU_INPUT_CTL_IS_POINTER_DRAGGED, MENU_INPUT_CTL_SET_POINTER_DRAGGED, MENU_INPUT_CTL_UNSET_POINTER_DRAGGED, - MENU_INPUT_CTL_KEYBOARD_LABEL, - MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, MENU_INPUT_CTL_DEINIT, MENU_INPUT_CTL_BIND_NONE, MENU_INPUT_CTL_BIND_SINGLE, diff --git a/setting_list.c b/setting_list.c index e833f2f6b2..d29a28eada 100644 --- a/setting_list.c +++ b/setting_list.c @@ -1772,10 +1772,8 @@ static void menu_input_st_string_cb(void *userdata, const char *str) { if (str && *str) { - rarch_setting_t *setting = NULL; - const char *label = NULL; - - menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, &label); + rarch_setting_t *setting = NULL; + const char *label = menu_input_dialog_get_label_buffer(); if (!string_is_empty(label)) setting = menu_setting_find(label);