--- vdr-1.4.2-1-orig/menu.c 2006-09-08 00:15:09.000000000 +0300 +++ vdr-1.4.2-1/menu.c 2006-09-08 15:29:33.000000000 +0300 @@ -1481,7 +1522,28 @@ case kOk: if (Count()) return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, otherChannel, true)); break; - default: break; + case kChanUp: /* PH */ + case k1: + case kChanDn: + case k3: if(!HasSubMenu()) { + int ChannelNr = cMenuWhatsOn::CurrentChannel(); + cChannel *channel = Channels.GetByNumber(ChannelNr); + if(channel) + channel = (Key==kChanDn || Key==k1) ? Channels.Prev(channel) : Channels.Next(channel); + if(channel) { + cMenuWhatsOn::SetCurrentChannel(channel->Number()); + cMenuScheduleItem::SetSortMode(cMenuScheduleItem::ssmAllThis); + PrepareScheduleAllThis(NULL, channel); + if (channel->Number() != cDevice::CurrentChannel()) { + otherChannel = channel->Number(); + SetHelp(Count() ? tr("Button$Record") : NULL, tr("Button$Now"), + tr("Button$Next"), tr("Button$Switch")); + } + Display(); + } + } + break; + default: break; } } else if (!HasSubMenu()) {