summaryrefslogtreecommitdiff
path: root/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/menu.c b/menu.c
index 95d7253..e3fe69a 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.309 2004/06/13 20:26:51 kls Exp $
+ * $Id: menu.c 1.314 2004/10/17 10:28:27 kls Exp $
*/
#include "menu.h"
@@ -308,7 +308,7 @@ eOSState cMenuEditChannel::ProcessKey(eKeys Key)
isyslog("added channel %d %s", channel->Number(), data.ToText());
state = osUser1;
}
- Channels.SetModified();
+ Channels.SetModified(true);
}
else {
Skins.Message(mtError, tr("Channel settings are not unique!"));
@@ -396,7 +396,7 @@ void cMenuChannels::Propagate(void)
for (cMenuChannelItem *ci = (cMenuChannelItem *)First(); ci; ci = (cMenuChannelItem *)ci->Next())
ci->Set();
Display();
- Channels.SetModified();
+ Channels.SetModified(true);
}
eOSState cMenuChannels::Switch(void)
@@ -514,7 +514,7 @@ cMenuText::~cMenuText()
void cMenuText::SetText(const char *Text)
{
free(text);
- text = strdup(Text);
+ text = Text ? strdup(Text) : NULL;
}
void cMenuText::Display(void)
@@ -2628,8 +2628,11 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key)
//TODO
//XXX case kGreen: return osEventNow;
//XXX case kYellow: return osEventNext;
- case kOk: if (group >= 0)
- Channels.SwitchTo(Channels.Get(Channels.GetNextNormal(group))->Number());
+ case kOk: if (group >= 0) {
+ cChannel *channel = Channels.Get(Channels.GetNextNormal(group));
+ if (channel)
+ Channels.SwitchTo(channel->Number());
+ }
return osEnd;
default: if ((Key & (k_Repeat | k_Release)) == 0) {
cRemote::Put(Key);
@@ -3073,12 +3076,13 @@ void cReplayControl::Hide(void)
modeOnly = false;
lastPlay = lastForward = false;
lastSpeed = -1;
+ timeSearchActive = false;
}
}
void cReplayControl::ShowMode(void)
{
- if (visible || Setup.ShowReplayMode) {
+ if (visible || Setup.ShowReplayMode && !cOsd::IsOpen()) {
bool Play, Forward;
int Speed;
if (GetReplayMode(Play, Forward, Speed) && (!visible || Play != lastPlay || Forward != lastForward || Speed != lastSpeed)) {