summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coreengine/viewdisplaymenu.c6
-rw-r--r--coreengine/viewelementsdisplaymenu.c13
-rw-r--r--coreengine/viewelementsdisplaymenu.h1
3 files changed, 12 insertions, 8 deletions
diff --git a/coreengine/viewdisplaymenu.c b/coreengine/viewdisplaymenu.c
index 9be2a43..e857678 100644
--- a/coreengine/viewdisplaymenu.c
+++ b/coreengine/viewdisplaymenu.c
@@ -889,15 +889,15 @@ void cSubView::DrawStaticVEs(void) {
background->Show();
background->Render();
}
+}
+
+void cSubView::DrawDynamicVEs(void) {
if (header) {
header->Show();
header->Set(menuCat);
if (header->Parse())
header->Render();
}
-}
-
-void cSubView::DrawDynamicVEs(void) {
if (datetime) {
datetime->Show();
if (datetime->Parse())
diff --git a/coreengine/viewelementsdisplaymenu.c b/coreengine/viewelementsdisplaymenu.c
index b7c20e9..cfe0540 100644
--- a/coreengine/viewelementsdisplaymenu.c
+++ b/coreengine/viewelementsdisplaymenu.c
@@ -11,6 +11,7 @@
* cVeDmHeader
******************************************************************/
cVeDmHeader::cVeDmHeader(void) {
+ changed = false;
title = NULL;
channelName = NULL;
channelNumber = 0;
@@ -48,12 +49,11 @@ void cVeDmHeader::SetTokenContainer(void) {
}
void cVeDmHeader::SetTitle(const char *title) {
+ if (this->title && !strcmp(this->title, title))
+ return;
+ free(this->title);
this->title = strdup(title);
- free(channelName);
- channelName = NULL;
- channelNumber = 0;
- free(channelId);
- channelId = NULL;
+ changed = true;
}
void cVeDmHeader::SetChannel(const cChannel *channel) {
@@ -65,6 +65,8 @@ void cVeDmHeader::SetChannel(const cChannel *channel) {
}
void cVeDmHeader::Set(eMenuCategory menuCat) {
+ if (!changed)
+ return;
tokenContainer->Clear();
tokenContainer->AddStringToken((int)eDMHeaderST::title, title);
tokenContainer->AddStringToken((int)eDMHeaderST::vdrversion, VDRVERSION);
@@ -101,6 +103,7 @@ void cVeDmHeader::Set(eMenuCategory menuCat) {
tokenContainer->AddIntToken((int)eDMHeaderIT::channelnumber, channelNumber);
tokenContainer->AddIntToken((int)eDMHeaderIT::channellogoexists, imgCache->LogoExists(channelId));
}
+ changed = false;
SetDirty();
}
diff --git a/coreengine/viewelementsdisplaymenu.h b/coreengine/viewelementsdisplaymenu.h
index 600af91..1ffa1d2 100644
--- a/coreengine/viewelementsdisplaymenu.h
+++ b/coreengine/viewelementsdisplaymenu.h
@@ -9,6 +9,7 @@
******************************************************************/
class cVeDmHeader : public cViewElement {
private:
+ bool changed;
char *title;
char *channelName;
int channelNumber;