Patches from bug #5001 by Rani Hod, should make settings more resiliant to having 'off-step' values in a general way, but specifically fixes that bug report, and also round the current sleep timer value up when entering settings for sleep timer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9527 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
51deb1d158
commit
a69c495e5d
3 changed files with 11 additions and 9 deletions
|
@ -78,13 +78,15 @@ void option_select_prev(struct option_select * opt)
|
|||
{
|
||||
if(opt->option - opt->step < opt->min_value)
|
||||
{
|
||||
if(!opt->limit_loop)
|
||||
{
|
||||
if(opt->option==opt->min_value)
|
||||
opt->option=opt->max_value-1;
|
||||
else
|
||||
/* the dissimilarity to option_select_next() arises from the
|
||||
* sleep timer problem (bug #5000 and #5001):
|
||||
* there we have min=0, step = 5 but the value itself might
|
||||
* not be a multiple of 5 -- as time elapsed;
|
||||
* We need to be able to set timer to 0 (= Off) nevertheless. */
|
||||
if(opt->option!=opt->min_value)
|
||||
opt->option=opt->min_value;
|
||||
}
|
||||
else if(!opt->limit_loop)
|
||||
opt->option=opt->max_value-1;
|
||||
}
|
||||
else
|
||||
opt->option-=opt->step;
|
||||
|
|
|
@ -827,7 +827,7 @@ static void sleep_timer_set(int minutes)
|
|||
|
||||
static bool sleep_timer(void)
|
||||
{
|
||||
int minutes = get_sleep_timer() / 60;
|
||||
int minutes = (get_sleep_timer() + 59) / 60; /* round up */
|
||||
|
||||
return set_int(str(LANG_SLEEP_TIMER), "", UNIT_MIN, &minutes,
|
||||
&sleep_timer_set, 5, 0, 300, sleep_timer_formatter);
|
||||
|
|
|
@ -193,4 +193,4 @@ Mark Bright
|
|||
Dominik Riebeling
|
||||
Alexander Bondar
|
||||
Peter Cawley
|
||||
|
||||
Rani Hod
|
||||
|
|
Loading…
Reference in a new issue