When changing resolutions, SwitchThemeAndLanguage was being called after clearing all subscribes but STAL wasn't reloading them because nothing had changed. Reload them explicitly if the theme doesn't change.

I'm not sure what the rationale behind taking this code path for changing the resolution as it seems to have nothing to do with the theme.
This commit is contained in:
Steve Checkoway
2007-02-11 01:19:30 +00:00
parent 1c43201f16
commit 2d1cd1de50
3 changed files with 7 additions and 4 deletions
+2 -1
View File
@@ -135,7 +135,8 @@ namespace
/* In case the previous theme overloaded class bindings, reinitialize them. */
LUA->RegisterTypes();
THEME->SwitchThemeAndLanguage( g_sNewTheme, THEME->GetCurLanguage(), PREFSMAN->m_bPseudoLocalize );
if( !THEME->SwitchThemeAndLanguage( g_sNewTheme, THEME->GetCurLanguage(), PREFSMAN->m_bPseudoLocalize ) )
THEME->ReloadSubscribers();
PREFSMAN->m_sTheme.Set( g_sNewTheme );
/* Apply the new window title, icon and aspect ratio. */
+3 -2
View File
@@ -345,7 +345,7 @@ RString ThemeManager::GetDefaultLanguage()
return sLangCode;
}
void ThemeManager::SwitchThemeAndLanguage( const RString &sThemeName_, const RString &sLanguage_, bool bPseudoLocalize )
bool ThemeManager::SwitchThemeAndLanguage( const RString &sThemeName_, const RString &sLanguage_, bool bPseudoLocalize )
{
RString sThemeName = sThemeName_;
RString sLanguage = sLanguage_;
@@ -367,7 +367,7 @@ void ThemeManager::SwitchThemeAndLanguage( const RString &sThemeName_, const RSt
bool bNothingChanging = sThemeName == m_sCurThemeName && sLanguage == m_sCurLanguage && m_bPseudoLocalize == bPseudoLocalize;
if( bNothingChanging )
return;
return false;
m_bPseudoLocalize = bPseudoLocalize;
@@ -397,6 +397,7 @@ void ThemeManager::SwitchThemeAndLanguage( const RString &sThemeName_, const RSt
LocalizedString::RegisterLocalizer( LocalizedStringImplThemeMetric::Create );
ReloadSubscribers();
return true;
}
void ThemeManager::ReloadSubscribers()
+2 -1
View File
@@ -41,7 +41,8 @@ public:
RString GetThemeDisplayName( const RString &sThemeName );
void GetLanguages( vector<RString>& AddTo );
bool DoesLanguageExist( const RString &sLanguage );
void SwitchThemeAndLanguage( const RString &sThemeName, const RString &sLanguage, bool bPseudoLocalize );
// Return false if nothing changed.
bool SwitchThemeAndLanguage( const RString &sThemeName, const RString &sLanguage, bool bPseudoLocalize );
void UpdateLuaGlobals();
RString GetCurThemeName() const { return m_sCurThemeName; };
bool IsThemeLoaded() const { return !m_sCurThemeName.empty(); };