diff --git a/input/input_driver.c b/input/input_driver.c index 58a4e9f50a..fc23f421bc 100644 --- a/input/input_driver.c +++ b/input/input_driver.c @@ -608,7 +608,7 @@ static INLINE bool input_menu_keys_pressed_internal( return false; } -bool input_driver_toggle_button_combo( +static bool input_driver_toggle_button_combo( unsigned mode, uint64_t input) { switch (mode) @@ -728,6 +728,20 @@ uint64_t input_menu_keys_pressed( input_driver_block_hotkey = true; } +#ifdef HAVE_MENU + { + const struct retro_keybind *mtkey = &input_config_binds[0][RARCH_MENU_TOGGLE]; + if ( ((settings->uints.input_menu_toggle_gamepad_combo != INPUT_TOGGLE_NONE) && + input_driver_toggle_button_combo( + settings->uints.input_menu_toggle_gamepad_combo, old_input)) + || input_menu_keys_pressed_internal( + binds, settings, joypad_info, RARCH_MENU_TOGGLE, max_users, + mtkey->valid, + settings->bools.input_all_users_control_menu)) + ret |= (UINT64_C(1) << RARCH_MENU_TOGGLE); + } +#endif + for (i = 0; i < RARCH_BIND_LIST_END; i++) { const struct retro_keybind *mtkey = &input_config_binds[0][i]; @@ -942,6 +956,15 @@ uint64_t input_keys_pressed( input_driver_block_hotkey = false; } +#ifdef HAVE_MENU + if ( + ((settings->uints.input_menu_toggle_gamepad_combo != INPUT_TOGGLE_NONE) && + input_driver_toggle_button_combo( + settings->uints.input_menu_toggle_gamepad_combo, old_input)) + || input_keys_pressed_internal(settings, joypad_info, RARCH_MENU_TOGGLE, binds)) + ret |= (UINT64_C(1) << RARCH_MENU_TOGGLE); +#endif + for (i = 0; i < RARCH_BIND_LIST_END; i++) { if ( (i != RARCH_MENU_TOGGLE) && diff --git a/input/input_driver.h b/input/input_driver.h index 910ef22049..d847fe2e06 100644 --- a/input/input_driver.h +++ b/input/input_driver.h @@ -343,9 +343,6 @@ bool input_driver_grab_mouse(void); bool input_driver_ungrab_mouse(void); -bool input_driver_toggle_button_combo( - unsigned mode, uint64_t input); - float *input_driver_get_float(enum input_action action); unsigned *input_driver_get_uint(enum input_action action); diff --git a/retroarch.c b/retroarch.c index a5d415c03b..45ec2ded91 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2420,11 +2420,8 @@ static enum runloop_state runloop_check_state( /* Check menu toggle */ { static bool old_pressed = false; - unsigned mode = settings->uints.input_menu_toggle_gamepad_combo; bool pressed = runloop_cmd_press( - current_input, RARCH_MENU_TOGGLE) || - ((mode != INPUT_TOGGLE_NONE) && - input_driver_toggle_button_combo(mode, current_input)); + current_input, RARCH_MENU_TOGGLE); if (menu_event_kb_is_set(RETROK_F1) == 1) {