From 495f828b507611fafa49997adf7f2bda815cdcb8 Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 25 Mar 2016 20:32:35 +0100 Subject: Fixes some display glitches in detailView --- plexSdOsd.cpp | 8 ++++---- viewGridNavigator.cpp | 17 +++++++++++++++++ viewGridNavigator.h | 3 +++ 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/plexSdOsd.cpp b/plexSdOsd.cpp index 6d9a6aa..dbbea64 100644 --- a/plexSdOsd.cpp +++ b/plexSdOsd.cpp @@ -121,11 +121,11 @@ eOSState cPlexSdOsd::ProcessKeyDetailView(eKeys Key) case kBack: state = eOSState::osContinue; m_pDetailGrid->Clear(); - m_pDetailsView->Deactivate(true); + m_pDetailGrid->Deactivate(true); m_pDetailGrid = nullptr; m_pDetailsView = nullptr; m_detailsActive = false; - m_pRootView->Activate(); + m_pBrowserGrid->Activate(); Flush(); break; case kYellow: @@ -229,11 +229,11 @@ void cPlexSdOsd::ShowDetails(plexclient::Video *vid) { if(m_detailsActive) return; - m_pRootView->Deactivate(true); + m_pBrowserGrid->Deactivate(true); m_pDetailsView = std::shared_ptr(GetOsdView((int)eViews::detailView)); m_pDetailGrid = std::shared_ptr(new cDetailView(m_pDetailsView, vid)); - m_pDetailsView->Activate(); + m_pDetailGrid->Activate(); m_pDetailGrid->Draw(); m_pDetailGrid->Flush(); m_detailsActive = true; diff --git a/viewGridNavigator.cpp b/viewGridNavigator.cpp index c6b3382..ec92c5f 100644 --- a/viewGridNavigator.cpp +++ b/viewGridNavigator.cpp @@ -36,6 +36,7 @@ void cViewGridNavigator::SetViewGrid(std::shared_ptr void cViewGridNavigator::ReDraw(cGridElement* element) { + if(m_bHidden) return; if(element) { cMutexLock MutexLock(&cPlexSdOsd::RedrawMutex); if (!element->IsVisible()) { @@ -258,3 +259,19 @@ bool cViewGridNavigator::NavigateRight() m_activeElementIter = next; return true; } + +void cViewGridNavigator::Deactivate(bool hide) +{ + if (m_pRootView) { + m_pRootView->Deactivate(hide); + m_bHidden = hide; + } +} + +void cViewGridNavigator::Activate() +{ + if (m_pRootView) { + m_pRootView->Activate(); + m_bHidden = false; + } +} diff --git a/viewGridNavigator.h b/viewGridNavigator.h index 2f6ad7e..1b1ae16 100644 --- a/viewGridNavigator.h +++ b/viewGridNavigator.h @@ -37,6 +37,7 @@ class cViewGridNavigator protected: int m_rows; int m_columns; + bool m_bHidden; std::shared_ptr m_pRootView; std::shared_ptr m_pGrid; @@ -65,6 +66,8 @@ public: virtual eOSState NavigateBack() = 0; virtual void ReDraw(cGridElement* element); cGridElement* SelectedObject(); + virtual void Deactivate(bool hide); + virtual void Activate(); }; #endif // cViewGridNAVIGATOR_H -- cgit v1.2.3