From 759a45d5086b427ad53486b2b13ab0011b869dee Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 28 Jan 2006 12:43:26 +0100 Subject: [PATCH] Fixed channel switching with the Down (Up) key in case the current channel is already the first (last) in the list --- CONTRIBUTORS | 2 ++ HISTORY | 4 +++- menu.c | 6 ++++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index eb9b25a0..653e0b4c 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1538,6 +1538,8 @@ Matthias Lenk Frank Krömmelbein for adding missing storing of the MenuScrollPage parameter + for reporting a problem with channel switching with the Down (Up) key in case the + current channel is already the first (last) in the list Bernhard Stegmaier for reporting a problem in cEITScanner::Process() with forced EPG scans if EPG diff --git a/HISTORY b/HISTORY index 10fef64c..3a6d0378 100644 --- a/HISTORY +++ b/HISTORY @@ -4228,7 +4228,7 @@ Video Disk Recorder Revision History - Fixed handling the '0' key for switching between the last two channels (thanks to Thomas Bergwinkl). -2006-01-27: Version 1.3.41 +2006-01-28: Version 1.3.41 - EPG events from epg.data or SVDRP's PUTE command now have their Title set to "No Title" if none was set. @@ -4246,3 +4246,5 @@ Video Disk Recorder Revision History - Now trying to reestablish the connection to the LIRC daemon in case it breaks (thanks to Ville Skyttä). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). +- Fixed channel switching with the Down (Up) key in case the current channel is + already the first (last) in the list (reported by Frank Krömmelbein). diff --git a/menu.c b/menu.c index bdd4aeb4..247aeed6 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 1.404 2006/01/27 14:04:34 kls Exp $ + * $Id: menu.c 1.405 2006/01/28 12:37:02 kls Exp $ */ #include "menu.h" @@ -3174,13 +3174,15 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key) cChannel *ch = NextAvailableChannel(channel, (k == kUp || k == kChanUp) ? 1 : -1); if (ch) channel = ch; + else if (channel && channel->Number() != cDevice::CurrentChannel()) + Key = k; // immediately switches channel when hitting the beginning/end of the channel list with k_Repeat } // no break here case kUp|k_Release: case kDown|k_Release: case kChanUp|k_Release: case kChanDn|k_Release: - if (!(Key & k_Repeat) && channel) + if (!(Key & k_Repeat) && channel && channel->Number() != cDevice::CurrentChannel()) NewChannel = channel; withInfo = true; group = -1;