mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 13:14:04 +00:00
Implement menu toggle in a better way
This commit is contained in:
parent
d94e8329e8
commit
d1d504df6c
@ -301,8 +301,7 @@ bool menu_custom_bind_keyboard_cb(void *data, unsigned code)
|
|||||||
uint64_t menu_input(void)
|
uint64_t menu_input(void)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
uint64_t input_state = 0;
|
retro_input_t input_state = 0, old_state = 0;
|
||||||
retro_input_t input_meta = 0, old_state = 0;
|
|
||||||
static const struct retro_keybind *binds[] = { g_settings.input.binds[0] };
|
static const struct retro_keybind *binds[] = { g_settings.input.binds[0] };
|
||||||
|
|
||||||
if (!driver.menu)
|
if (!driver.menu)
|
||||||
@ -318,12 +317,6 @@ uint64_t menu_input(void)
|
|||||||
|
|
||||||
input_state = input_keys_pressed(0, RETRO_DEVICE_ID_JOYPAD_R2, binds);
|
input_state = input_keys_pressed(0, RETRO_DEVICE_ID_JOYPAD_R2, binds);
|
||||||
|
|
||||||
input_meta = meta_input_keys_pressed(RARCH_MENU_TOGGLE, RARCH_MENU_TOGGLE + 1,
|
|
||||||
&old_state);
|
|
||||||
|
|
||||||
input_state |= BIND_PRESSED(input_meta, RARCH_MENU_TOGGLE)
|
|
||||||
? (1ULL << RARCH_MENU_TOGGLE) : 0;
|
|
||||||
|
|
||||||
input_pop_analog_dpad((struct retro_keybind*)binds[0]);
|
input_pop_analog_dpad((struct retro_keybind*)binds[0]);
|
||||||
for (i = 0; i < MAX_PLAYERS; i++)
|
for (i = 0; i < MAX_PLAYERS; i++)
|
||||||
input_pop_analog_dpad(g_settings.input.autoconf_binds[i]);
|
input_pop_analog_dpad(g_settings.input.autoconf_binds[i]);
|
||||||
@ -337,7 +330,7 @@ uint64_t menu_input(void)
|
|||||||
| (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT)
|
| (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT)
|
||||||
| (1ULL << RETRO_DEVICE_ID_JOYPAD_L)
|
| (1ULL << RETRO_DEVICE_ID_JOYPAD_L)
|
||||||
| (1ULL << RETRO_DEVICE_ID_JOYPAD_R)
|
| (1ULL << RETRO_DEVICE_ID_JOYPAD_R)
|
||||||
)) && !(input_state & (1ULL << RARCH_MENU_TOGGLE));
|
));
|
||||||
|
|
||||||
return input_state;
|
return input_state;
|
||||||
}
|
}
|
||||||
|
@ -3220,7 +3220,11 @@ bool rarch_main_iterate(void)
|
|||||||
|
|
||||||
if (g_extern.is_menu)
|
if (g_extern.is_menu)
|
||||||
{
|
{
|
||||||
if (!menu_iterate(input, old_input, trigger_input))
|
if (
|
||||||
|
!menu_iterate(input, old_input, trigger_input) ||
|
||||||
|
(check_enter_menu_func(trigger_input) &&
|
||||||
|
g_extern.main_is_init && !g_extern.libretro_dummy)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
rarch_main_set_state(RARCH_ACTION_STATE_MENU_RUNNING_FINISHED);
|
rarch_main_set_state(RARCH_ACTION_STATE_MENU_RUNNING_FINISHED);
|
||||||
driver_set_nonblock_state(driver.nonblock_state);
|
driver_set_nonblock_state(driver.nonblock_state);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user