fix "save prefs when exiting system menu"; when DelayedScreenLoad,
bWasOnSystemMenu was always false, because the screen was already deleted
This commit is contained in:
@@ -361,6 +361,8 @@ void ScreenManager::SetNewScreen( const CString &sScreenName )
|
|||||||
|
|
||||||
void ScreenManager::LoadDelayedScreen()
|
void ScreenManager::LoadDelayedScreen()
|
||||||
{
|
{
|
||||||
|
const bool bWasOnSystemMenu = !m_ScreenStack.empty() && m_ScreenStack.back()->GetScreenType() == system_menu;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We have a screen to display. Delete the current screens and load it.
|
* We have a screen to display. Delete the current screens and load it.
|
||||||
* If DelayedScreenLoad is true, clear the old screen first; this lowers
|
* If DelayedScreenLoad is true, clear the old screen first; this lowers
|
||||||
@@ -377,8 +379,6 @@ retry:
|
|||||||
CString sScreenName = m_sDelayedScreen;
|
CString sScreenName = m_sDelayedScreen;
|
||||||
m_sDelayedScreen = "";
|
m_sDelayedScreen = "";
|
||||||
|
|
||||||
Screen* pOldTopScreen = m_ScreenStack.empty() ? NULL : m_ScreenStack.back();
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Search prepped screens to see if we already have this screen available.
|
// Search prepped screens to see if we already have this screen available.
|
||||||
@@ -428,7 +428,6 @@ retry:
|
|||||||
m_sLastLoadedBackgroundPath = sNewBGA;
|
m_sLastLoadedBackgroundPath = sNewBGA;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool bWasOnSystemMenu = pOldTopScreen && pOldTopScreen->GetScreenType() == system_menu;
|
|
||||||
bool bIsOnSystemMenu = pNewScreen->GetScreenType() == system_menu;
|
bool bIsOnSystemMenu = pNewScreen->GetScreenType() == system_menu;
|
||||||
|
|
||||||
// If we're exiting a system menu, persist settings in case we don't exit normally
|
// If we're exiting a system menu, persist settings in case we don't exit normally
|
||||||
|
|||||||
Reference in New Issue
Block a user