Index: apps/action.c =================================================================== --- apps/action.c (revision 29619) +++ apps/action.c (working copy) @@ -53,7 +53,7 @@ static bool short_press = false; #endif -#define REPEAT_WINDOW_TICKS HZ/10 +#define REPEAT_WINDOW_TICKS HZ/4 static int last_action_tick = 0; /* software keylock stuff */ Index: apps/gui/list.c =================================================================== --- apps/gui/list.c (revision 29619) +++ apps/gui/list.c (working copy) @@ -569,17 +569,19 @@ { if (global_settings.list_accel_start_delay) { - int start_delay = global_settings.list_accel_start_delay * (HZ/2); - int accel_wait = global_settings.list_accel_wait * HZ/2; + int start_delay = global_settings.list_accel_start_delay * HZ; + int accel_wait = global_settings.list_accel_wait * HZ; if (get_action_statuscode(NULL)&ACTION_REPEAT) { if (!last_accel_tick) + { last_accel_tick = current_tick + start_delay; + } else if (TIME_AFTER(current_tick, last_accel_tick + accel_wait)) { last_accel_tick = current_tick; - next_item_modifier++; + next_item_modifier *= 2; /* Double scroll speed. */ } } else if (last_accel_tick) Index: apps/settings_list.c =================================================================== --- apps/settings_list.c (revision 29619) +++ apps/settings_list.c (working copy) @@ -1694,7 +1694,7 @@ #endif #ifndef HAVE_WHEEL_ACCELERATION INT_SETTING(0, list_accel_start_delay, LANG_LISTACCEL_START_DELAY, - 2, "list_accel_start_delay", UNIT_MS, 0, 10, 1, + 2, "list_accel_start_delay", UNIT_SEC, 0, 10, 1, formatter_unit_0_is_off, getlang_unit_0_is_off, NULL), INT_SETTING(0, list_accel_wait, LANG_LISTACCEL_ACCEL_SPEED, 3, "list_accel_wait", UNIT_SEC, 1, 10, 1, Index: manual/configure_rockbox/display_options.tex =================================================================== --- manual/configure_rockbox/display_options.tex (revision 29619) +++ manual/configure_rockbox/display_options.tex (working copy) @@ -181,6 +181,19 @@ When set to \setting{Yes} scrolling vertically on pages that surpass the screen size will page up/down instead of simply changing lines. This can be useful on slow displays. + \nopt{scrollwheel}{ + \item[List Acceleration Start Delay.] + This settings generally enables acceleration of scroll speed in lists + when keep pressing \ButtonUp{} or \ButtonDown{}. When set to + \setting{Off} the acceleration is disabled. When another value is set + the acceleration will start after pressing the \ButtonUp{} or + \ButtonDown{} for the chosen amount of seconds. + \item[List Acceleration Speed.] + This settings controls how fast the scroll speed accelerates. According + to the chosen setting the list scrolling speed doubles each N seconds. + For example selecting \setting{2x/3s} will double the scroll speed each + 3 seconds when keep pressing \ButtonUp{} or \ButtonDown{}. + } \end{description} % \opt{lcd_bitmap}{