Merge pull request #7874 from markwkidd/patch-7

unify input bind hold behavior across platforms
This commit is contained in:
Twinaphex 2019-02-21 01:50:13 +01:00 committed by GitHub
commit d46a60bb2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 33 deletions

View File

@ -764,7 +764,7 @@ static const unsigned input_poll_type_behavior = 2;
static const unsigned input_bind_timeout = 5;
static const unsigned input_bind_hold = 2;
static const unsigned input_bind_hold = 1;
static const unsigned menu_thumbnails_default = 3;

View File

@ -584,46 +584,45 @@ bool menu_input_key_bind_iterate(menu_input_ctx_bind_t *bind)
input_driver_keyboard_mapping_set_block( true );
menu_input_key_bind_poll_bind_state( &binds, menu_bind_port, timed_out );
#ifdef ANDROID
/*keep resetting bind during the hold period, or we'll potentially bind joystick and mouse, etc.*/
binds.buffer = *( binds.output );
/*keep resetting bind during the hold period, or we'll potentially bind joystick and mouse, etc.*/
binds.buffer = *( binds.output );
if ( menu_input_key_bind_poll_find_hold( &binds, &binds.buffer ) )
if ( settings->uints.input_bind_timeout == 0 )
{
/*inhibit timeout*/
rarch_timer_begin_new_time( &binds.timer_timeout, settings->uints.input_bind_timeout );
/*run hold timer*/
rarch_timer_tick( &binds.timer_hold );
snprintf( bind->s, bind->len,
"[%s]\npress keyboard, mouse or joypad\nand hold ...",
input_config_bind_map_get_desc(
menu_input_binds.begin - MENU_SETTINGS_BIND_BEGIN ) );
/*hold complete?*/
if ( rarch_timer_has_expired( &binds.timer_hold ) )
{
complete = true;
if ( ( binds.skip && !menu_input_binds.skip ) ||
menu_input_key_bind_poll_find_trigger( &menu_input_binds, &binds, &( binds.buffer ) ) )
{
complete = true;
}
}
else
{
/*reset hold countdown*/
rarch_timer_begin_new_time( &binds.timer_hold, settings->uints.input_bind_hold );
if ( menu_input_key_bind_poll_find_hold( &binds, &binds.buffer ) )
{
/*inhibit timeout*/
rarch_timer_begin_new_time( &binds.timer_timeout, settings->uints.input_bind_timeout );
/*run hold timer*/
rarch_timer_tick( &binds.timer_hold );
snprintf( bind->s, bind->len,
"[%s]\npress keyboard, mouse or joypad\nand hold ...",
input_config_bind_map_get_desc(
menu_input_binds.begin - MENU_SETTINGS_BIND_BEGIN ) );
/*hold complete?*/
if ( rarch_timer_has_expired( &binds.timer_hold ) )
{
complete = true;
}
}
else
{
/*reset hold countdown*/
rarch_timer_begin_new_time( &binds.timer_hold, settings->uints.input_bind_hold );
}
}
#else
if ( ( binds.skip && !menu_input_binds.skip ) ||
menu_input_key_bind_poll_find_trigger( &menu_input_binds, &binds, &( binds.buffer ) ) )
{
complete = true;
}
#endif
if ( complete )
{
/*update bind*/