diff options
author | louis <louis.braun@gmx.de> | 2016-02-17 18:08:38 +0100 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2016-02-17 18:08:38 +0100 |
commit | 21732b177721386ab23ac6a3fa1d145e0049aee4 (patch) | |
tree | 41207336e453c1b7dce0b96816049cf2e0dc56e7 /coreengine | |
parent | c22ba065c418ec5f277a1c57489097dac46e1133 (diff) | |
download | vdr-plugin-skindesigner-21732b177721386ab23ac6a3fa1d145e0049aee4.tar.gz vdr-plugin-skindesigner-21732b177721386ab23ac6a3fa1d145e0049aee4.tar.bz2 |
fixed display of header in schedules menu
Diffstat (limited to 'coreengine')
-rw-r--r-- | coreengine/viewdisplaymenu.c | 6 | ||||
-rw-r--r-- | coreengine/viewelementsdisplaymenu.c | 13 | ||||
-rw-r--r-- | coreengine/viewelementsdisplaymenu.h | 1 |
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; |