From a35e452ec31e39bf4f8686b5cd1d66ad3ea3989a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 21 May 2017 21:19:07 +0200 Subject: [PATCH] Use trigger_input only for menu --- input/input_driver.c | 6 +----- input/input_driver.h | 2 -- retroarch.c | 19 ++++++++++--------- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/input/input_driver.c b/input/input_driver.c index fc23f421bc..bcf73dea00 100644 --- a/input/input_driver.c +++ b/input/input_driver.c @@ -669,7 +669,6 @@ uint64_t input_menu_keys_pressed( void *data, uint64_t old_input, uint64_t *last_input, - uint64_t *trigger_input, bool runloop_paused, bool *nonblock_state) { @@ -687,7 +686,7 @@ uint64_t input_menu_keys_pressed( if (settings->bools.menu_unified_controls && !menu_input_dialog_get_display_kb()) return input_keys_pressed(settings, old_input, last_input, - trigger_input, runloop_paused, nonblock_state); + runloop_paused, nonblock_state); for (i = 0; i < max_users; i++) { @@ -808,7 +807,6 @@ uint64_t input_menu_keys_pressed( } } - *trigger_input = ret & ~old_input; *last_input = ret; if (input_driver_flushing_input) @@ -901,7 +899,6 @@ uint64_t input_keys_pressed( void *data, uint64_t old_input, uint64_t *last_input, - uint64_t *trigger_input, bool runloop_paused, bool *nonblock_state) { @@ -972,7 +969,6 @@ uint64_t input_keys_pressed( ret |= (UINT64_C(1) << i); } - *trigger_input = ret & ~old_input; *last_input = ret; if (input_driver_flushing_input) diff --git a/input/input_driver.h b/input/input_driver.h index d847fe2e06..d3ddc1084c 100644 --- a/input/input_driver.h +++ b/input/input_driver.h @@ -267,7 +267,6 @@ uint64_t input_keys_pressed( void *data, uint64_t old_input, uint64_t *last_input, - uint64_t *trigger_input, bool runloop_paused, bool *nonblock_state); @@ -276,7 +275,6 @@ uint64_t input_menu_keys_pressed( void *data, uint64_t old_input, uint64_t *last_input, - uint64_t *trigger_input, bool runloop_paused, bool *nonblock_state); #endif diff --git a/retroarch.c b/retroarch.c index 45ec2ded91..78cceabfd8 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2242,7 +2242,6 @@ bool runloop_msg_queue_pull(const char **ret) static enum runloop_state runloop_check_state( settings_t *settings, uint64_t current_input, - uint64_t trigger_input, bool input_driver_is_nonblock, bool menu_is_alive, unsigned *sleep_ms) @@ -2375,13 +2374,15 @@ static enum runloop_state runloop_check_state( #ifdef HAVE_MENU if (menu_is_alive) { + static uint64_t old_input = 0; menu_ctx_iterate_t iter; - enum menu_action action = (enum menu_action)menu_event(current_input, trigger_input); - bool focused = pause_nonactive ? is_focused : true; + uint64_t trigger_input = current_input & ~old_input; + enum menu_action action = (enum menu_action)menu_event(current_input, trigger_input); + bool focused = pause_nonactive ? is_focused : true; - focused = focused && !ui_companion_is_on_foreground(); + focused = focused && !ui_companion_is_on_foreground(); - iter.action = action; + iter.action = action; if (!menu_driver_iterate(&iter)) rarch_menu_running_finished(); @@ -2392,6 +2393,8 @@ static enum runloop_state runloop_check_state( ) ; + old_input = current_input; + if (!focused) return RUNLOOP_STATE_SLEEP; @@ -2861,7 +2864,6 @@ int runloop_iterate(unsigned *sleep_ms) { unsigned i; retro_time_t current, target, to_sleep_ms; - uint64_t trigger_input = 0; static uint64_t last_input = 0; bool input_driver_is_nonblock = false; settings_t *settings = config_get_ptr(); @@ -2880,11 +2882,11 @@ int runloop_iterate(unsigned *sleep_ms) #ifdef HAVE_MENU menu_is_alive ? input_menu_keys_pressed(settings,old_input, - &last_input, &trigger_input, runloop_paused, + &last_input, runloop_paused, &input_driver_is_nonblock) : #endif input_keys_pressed(settings, old_input, &last_input, - &trigger_input, runloop_paused, + runloop_paused, &input_driver_is_nonblock); if (runloop_frame_time.callback) @@ -2917,7 +2919,6 @@ int runloop_iterate(unsigned *sleep_ms) runloop_check_state( settings, current_input, - trigger_input, input_driver_is_nonblock, menu_is_alive, sleep_ms))