summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY2
-rw-r--r--menu.c17
3 files changed, 16 insertions, 5 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index f4a44f91..13f4e76e 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -2389,6 +2389,8 @@ Halim Sahin <halim.sahin@t-online.de>
works if the "EPG scan" is active
for reporting a problem with adding new transponders in case there is only a single
channel in the channel list
+ for suggesting to make the "Source" item in the "Edit channel" menu wrap around the
+ list of sources
Denis Knauf <denis.knauf@gmail.com>
for reporting a missing '-' at the next to last line of SVDRP help texts
diff --git a/HISTORY b/HISTORY
index 48c3828c..709d9262 100644
--- a/HISTORY
+++ b/HISTORY
@@ -6391,3 +6391,5 @@ Video Disk Recorder Revision History
- Assigned the source character 'V' to "Analog Video" (suggested by Lars Hanisch).
- Added support for ATSC devices (thanks to Alex Lasnier).
This obsoletes the ATSC patch.
+- The "Source" item in the "Edit channel" menu now wraps around the list of sources
+ (suggested by Halim Sahin).
diff --git a/menu.c b/menu.c
index 655eb4c4..967084a2 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 2.17 2010/02/21 14:09:19 kls Exp $
+ * $Id: menu.c 2.18 2010/03/06 12:43:15 kls Exp $
*/
#include "menu.h"
@@ -160,16 +160,23 @@ eOSState cMenuEditSrcItem::ProcessKey(eKeys Key)
eOSState state = cMenuEditItem::ProcessKey(Key);
if (state == osUnknown) {
- if (NORMALKEY(Key) == kLeft) { // TODO might want to increase the delta if repeated quickly?
- if (source && source->Prev()) {
- source = (cSource *)source->Prev();
+ bool IsRepeat = Key & k_Repeat;
+ Key = NORMALKEY(Key);
+ if (Key == kLeft) { // TODO might want to increase the delta if repeated quickly?
+ if (source) {
+ if (source->Prev())
+ source = (cSource *)source->Prev();
+ else if (!IsRepeat)
+ source = Sources.Last();
*value = source->Code();
}
}
- else if (NORMALKEY(Key) == kRight) {
+ else if (Key == kRight) {
if (source) {
if (source->Next())
source = (cSource *)source->Next();
+ else if (!IsRepeat)
+ source = Sources.First();
}
else
source = Sources.First();