diff options
author | chriszero <zerov83@gmail.com> | 2015-05-02 19:42:08 +0200 |
---|---|---|
committer | chriszero <zerov83@gmail.com> | 2015-05-02 19:42:08 +0200 |
commit | f7448c90f3c27f44cca77bdf2399d4321ef990a2 (patch) | |
tree | 108d744a4c33a323a305a1163e73c54679c9ff86 | |
parent | 70a2f36b1b8abb3bdf5df019c3bef34189d728eb (diff) | |
download | vdr-plugin-plex-f7448c90f3c27f44cca77bdf2399d4321ef990a2.tar.gz vdr-plugin-plex-f7448c90f3c27f44cca77bdf2399d4321ef990a2.tar.bz2 |
Fixes segfault when using <areascroll/>
-rw-r--r-- | browserGrid.cpp | 9 | ||||
-rw-r--r-- | browserGrid.h | 1 | ||||
-rw-r--r-- | plexSdOsd.cpp | 5 | ||||
-rw-r--r-- | viewHeader.cpp | 4 | ||||
-rw-r--r-- | viewHeader.h | 1 |
5 files changed, 18 insertions, 2 deletions
diff --git a/browserGrid.cpp b/browserGrid.cpp index e181350..2b990e8 100644 --- a/browserGrid.cpp +++ b/browserGrid.cpp @@ -28,6 +28,15 @@ cBrowserGrid::~cBrowserGrid() m_vElements.clear(); } +void cBrowserGrid::Clear() +{ + m_pBackground->Clear(); + m_pfooter->Clear(); + m_pInfopane->Clear(); + m_pWatch->Clear(); + m_pGrid->Clear(); +} + void cBrowserGrid::Flush() { cMutexLock MutexLock(&cPlexSdOsd::RedrawMutex); diff --git a/browserGrid.h b/browserGrid.h index 339bdc4..a875149 100644 --- a/browserGrid.h +++ b/browserGrid.h @@ -69,6 +69,7 @@ public: void PrevTab(); bool DrawTime(); virtual void Flush(); + virtual void Clear(); }; #endif // CBROWSERGRID_H diff --git a/plexSdOsd.cpp b/plexSdOsd.cpp index 27f841f..949eb81 100644 --- a/plexSdOsd.cpp +++ b/plexSdOsd.cpp @@ -13,7 +13,9 @@ cPlexSdOsd::cPlexSdOsd() cPlexSdOsd::~cPlexSdOsd() { + m_pBrowserGrid->Clear(); cPictureCache::GetInstance().RemoveAll(); + delete m_pRootView; } bool cPlexSdOsd::SdSupport() @@ -84,8 +86,7 @@ eOSState cPlexSdOsd::ProcessKey(eKeys Key) Flush(); break; case kBack: - //state = - m_pBrowserGrid->NavigateBack(); + state = m_pBrowserGrid->NavigateBack(); Flush(); break; case kRed: diff --git a/viewHeader.cpp b/viewHeader.cpp index d02b032..6471a9e 100644 --- a/viewHeader.cpp +++ b/viewHeader.cpp @@ -6,6 +6,10 @@ cViewHeader::cViewHeader(skindesignerapi::cViewElement* viewElem) m_eCurrentTab = ePlexMenuTab::pmtOnDeck; } +cViewHeader::~cViewHeader() +{ +} + void cViewHeader::Draw(cGridElement* elem) { m_pViewElem->Clear(); diff --git a/viewHeader.h b/viewHeader.h index a40c4df..997f741 100644 --- a/viewHeader.h +++ b/viewHeader.h @@ -19,6 +19,7 @@ private: public: cViewHeader(skindesignerapi::cViewElement* viewElem); + ~cViewHeader(); void Draw(cGridElement* elem); ePlexMenuTab NextTab(); ePlexMenuTab PrevTab(); |