Use trigger_input only for menu

This commit is contained in:
twinaphex 2017-05-21 21:19:07 +02:00
parent 68ecade37d
commit a35e452ec3
3 changed files with 11 additions and 16 deletions

View File

@ -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)

View File

@ -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

View File

@ -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))