diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2003-04-12 09:24:48 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2003-04-12 09:24:48 +0200 |
commit | e58802d2a0a04e860dcd9bb2db8f03b0f9c3402e (patch) | |
tree | 4782bd329513c296ed904d1b5dac7eb1cf41c930 | |
parent | c30aeec7165ed63bc2f30ee0d85b15f4a83df005 (diff) | |
download | vdr-e58802d2a0a04e860dcd9bb2db8f03b0f9c3402e.tar.gz vdr-e58802d2a0a04e860dcd9bb2db8f03b0f9c3402e.tar.bz2 |
Fixed handling min/max borders when entering integer values
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 4 | ||||
-rw-r--r-- | menuitems.c | 47 |
3 files changed, 29 insertions, 23 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 17d5b778..bc2c6ab5 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -243,6 +243,7 @@ Simon Bauschulte <SemiSchwabe@Brutzel.de> Andy Grobb <Charly98@01019freenet.de> for completing storing the current audio volume in the setup.conf file for fixing the EPG display in case Setup.ShowInfoOnChSwitch is set to "no" + for reporting a bug in handling min/max borders when entering integer values Thomas Heiligenmann <thomas@heiligenmann.de> for implementing the SVDRP commands LSTR and DELR @@ -1988,7 +1988,7 @@ Video Disk Recorder Revision History reporting this one). - Fixed support for Viaccess CAMs (thanks to Axel Gruber for helping to debug this). -2003-04-06: Version 1.1.27 +2003-04-12: Version 1.1.27 - The CAM is now accessed only if the current channel actually has a non-zero Ca value, and CAM access is completely suppressed during replay, which avoids @@ -2015,3 +2015,5 @@ Video Disk Recorder Revision History - Avoiding high CPU load in case the connection to LIRC gets lost (thanks to Ludwig Nussel). - Fixed handling repeat function with LIRC (thanks to Ludwig Nussel). +- Fixed handling min/max borders when entering integer values (thanks to Andy + Grobb for reporting this one). diff --git a/menuitems.c b/menuitems.c index 56b91995..d680ff9c 100644 --- a/menuitems.c +++ b/menuitems.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menuitems.c 1.12 2003/01/18 13:34:40 kls Exp $ + * $Id: menuitems.c 1.13 2003/04/12 09:21:33 kls Exp $ */ #include "menuitems.h" @@ -62,27 +62,30 @@ eOSState cMenuEditIntItem::ProcessKey(eKeys Key) eOSState state = cMenuEditItem::ProcessKey(Key); if (state == osUnknown) { - int newValue; - if (k0 <= Key && Key <= k9) { - if (fresh) { - *value = 0; - fresh = false; - } - newValue = *value * 10 + (Key - k0); - } - else if (NORMALKEY(Key) == kLeft) { // TODO might want to increase the delta if repeated quickly? - newValue = *value - 1; - fresh = true; - } - else if (NORMALKEY(Key) == kRight) { - newValue = *value + 1; - fresh = true; - } - else { - if (*value < min) { *value = min; Set(); } - if (*value > max) { *value = max; Set(); } - return state; - } + int newValue = *value; + Key = NORMALKEY(Key); + switch (Key) { + case kNone: break; + case k0 ... k9: + if (fresh) { + *value = 0; + fresh = false; + } + newValue = *value * 10 + (Key - k0); + break; + case kLeft: // TODO might want to increase the delta if repeated quickly? + newValue = *value - 1; + fresh = true; + break; + case kRight: + newValue = *value + 1; + fresh = true; + break; + default: + if (*value < min) { *value = min; Set(); } + if (*value > max) { *value = max; Set(); } + return state; + } if ((!fresh || min <= newValue) && newValue <= max) { *value = newValue; Set(); |