diff --git a/input/input_driver.c b/input/input_driver.c index f879ee20ea..45429306e4 100644 --- a/input/input_driver.c +++ b/input/input_driver.c @@ -585,6 +585,13 @@ uint64_t input_menu_keys_pressed( if (!current_input || !current_input_data) goto end; + if (settings->menu.unified_controls) + return input_keys_pressed( + old_input, + last_input, + trigger_input, + runloop_paused); + for (i = 0; i < settings->input.max_users; i++) { struct retro_keybind *auto_binds = settings->input.autoconf_binds[i]; diff --git a/runloop.c b/runloop.c index dd9326258b..29e413d7fe 100644 --- a/runloop.c +++ b/runloop.c @@ -1076,7 +1076,7 @@ static enum runloop_state runloop_check_state( return RUNLOOP_STATE_ITERATE; } -#define runloop_menu_unified_controls_pressed() (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL) && settings->menu.unified_controls) +#define runloop_menu_unified_controls_pressed() (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL)) /** * runloop_iterate: @@ -1092,18 +1092,17 @@ int runloop_iterate(unsigned *sleep_ms) unsigned i; retro_time_t current, target, to_sleep_ms; uint64_t trigger_input = 0; - uint64_t current_input = 0; static uint64_t last_input = 0; settings_t *settings = config_get_ptr(); uint64_t old_input = last_input; + uint64_t current_input = #ifdef HAVE_MENU - if (!runloop_menu_unified_controls_pressed()) - current_input = input_menu_keys_pressed(old_input, - &last_input, &trigger_input, runloop_paused); - else + runloop_menu_unified_controls_pressed() ? + input_menu_keys_pressed(old_input, + &last_input, &trigger_input, runloop_paused) : #endif - current_input = input_keys_pressed(old_input, &last_input, + input_keys_pressed(old_input, &last_input, &trigger_input, runloop_paused); if (runloop_frame_time.callback)