mirror of
https://github.com/libretro/RetroArch
synced 2025-03-22 16:20:58 +00:00
(Menu) menu_settings_iterate - implement fast scrolling
This commit is contained in:
parent
02e6ab0ba9
commit
55c48e7e66
@ -1206,17 +1206,20 @@ static int menu_settings_iterate(unsigned action, rarch_setting_t *setting)
|
|||||||
if (driver.menu->need_refresh)
|
if (driver.menu->need_refresh)
|
||||||
action = MENU_ACTION_NOOP;
|
action = MENU_ACTION_NOOP;
|
||||||
|
|
||||||
|
unsigned scroll_speed = (max(driver.menu->scroll_accel, 2) - 2) / 4 + 1;
|
||||||
|
unsigned fast_scroll_speed = 4 + 4 * scroll_speed;
|
||||||
|
|
||||||
switch (action)
|
switch (action)
|
||||||
{
|
{
|
||||||
case MENU_ACTION_UP:
|
case MENU_ACTION_UP:
|
||||||
if (driver.menu->selection_ptr > 0)
|
if (driver.menu->selection_ptr >= scroll_speed)
|
||||||
menu_decrement_navigation(driver.menu);
|
menu_decrement_navigation(driver.menu);
|
||||||
else
|
else
|
||||||
menu_set_navigation(driver.menu, file_list_get_size(driver.menu->selection_buf) - 1);
|
menu_set_navigation(driver.menu, file_list_get_size(driver.menu->selection_buf) - 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_ACTION_DOWN:
|
case MENU_ACTION_DOWN:
|
||||||
if (driver.menu->selection_ptr + 1 < file_list_get_size(driver.menu->selection_buf))
|
if (driver.menu->selection_ptr + scroll_speed < file_list_get_size(driver.menu->selection_buf))
|
||||||
menu_increment_navigation(driver.menu);
|
menu_increment_navigation(driver.menu);
|
||||||
else
|
else
|
||||||
menu_clear_navigation(driver.menu);
|
menu_clear_navigation(driver.menu);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user