From 93ec1a9df295d4b7891b4a1f9e51f603e98975c1 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Tue, 3 Feb 2015 10:52:33 +0100 Subject: [PATCH] Fixed switching channels in the Schedule menu after going through various Now and Schedule menus for different channels --- CONTRIBUTORS | 2 ++ HISTORY | 2 ++ menu.c | 11 +++++++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 71fab48d..c2733fca 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3216,6 +3216,8 @@ Matthias Senzel with device bonding for reporting a problem with handling overlapping pending timers for fixing the German translation of "Binary skip timeout (s)" + for reporting a bug in switching channels in the Schedule menu after going through + various Now and Schedule menus for different channels Marek Nazarko for translating OSD texts to the Polish language diff --git a/HISTORY b/HISTORY index 997f37df..282cf4b1 100644 --- a/HISTORY +++ b/HISTORY @@ -8480,3 +8480,5 @@ Video Disk Recorder Revision History - Updated the Ukrainian OSD texts (thanks to Yarema Aka Knedlyk). - Updated the Romanian OSD texts (thanks to Lucian Muresan). - Updated the Hungarian OSD texts (thanks to István Füley). +- Fixed switching channels in the Schedule menu after going through various Now and + Schedule menus for different channels (reported by Matthias Senzel). diff --git a/menu.c b/menu.c index 2d6916ed..ab778e45 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 3.36 2015/02/02 12:23:18 kls Exp $ + * $Id: menu.c 3.37 2015/02/03 10:42:55 kls Exp $ */ #include "menu.h" @@ -1748,9 +1748,12 @@ eOSState cMenuSchedule::Record(void) eOSState cMenuSchedule::Switch(void) { - if (otherChannel) { - if (Channels.SwitchTo(otherChannel)) - return osEnd; + cMenuScheduleItem *item = (cMenuScheduleItem *)Get(Current()); + if (item) { + if (cChannel *Channel = Channels.GetByChannelID(item->event->ChannelID(), true)) { + if (Channels.SwitchTo(Channel->Number())) + return osEnd; + } } Skins.Message(mtError, tr("Can't switch channel!")); return osContinue;