diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2006-01-22 16:06:39 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2006-01-22 16:06:39 +0100 |
commit | 1f2574fb1264113f28098f2db67b378fc20fd333 (patch) | |
tree | 975619b02b4b497e1018df70658dc8897f1ffc87 /menu.c | |
parent | 359d7c376aab5b688e89fd869cfe0a4873abb5cd (diff) | |
download | vdr-1f2574fb1264113f28098f2db67b378fc20fd333.tar.gz vdr-1f2574fb1264113f28098f2db67b378fc20fd333.tar.bz2 |
Fixed detecting channel switches from SVDRP
Diffstat (limited to 'menu.c')
-rw-r--r-- | menu.c | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.402 2006/01/22 14:49:54 kls Exp $ + * $Id: menu.c 1.403 2006/01/22 16:06:39 kls Exp $ */ #include "menu.h" @@ -3226,12 +3226,18 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key) } }; if (!timeout || lastTime.Elapsed() < (uint64)(Setup.ChannelInfoTime * 1000)) { - if (!number && group < 0 && channel && channel->Number() != cDevice::CurrentChannel()) - Refresh(); // makes sure a channel switch through the SVDRP CHAN command is displayed + if (Key == kNone && !number && group < 0 && !NewChannel && channel && channel->Number() != cDevice::CurrentChannel()) { + // makes sure a channel switch through the SVDRP CHAN command is displayed + channel = Channels.GetByNumber(cDevice::CurrentChannel()); + Refresh(); + lastTime.Set(); + } DisplayInfo(); displayChannel->Flush(); - if (NewChannel) + if (NewChannel) { Channels.SwitchTo(NewChannel->Number()); + channel = NewChannel; + } return osContinue; } return osEnd; |