Restore Win32 locale in wxLocale destructor
This commit is contained in:
@@ -363,6 +363,9 @@ private:
|
|||||||
|
|
||||||
const char *m_pszOldLocale; // previous locale from setlocale()
|
const char *m_pszOldLocale; // previous locale from setlocale()
|
||||||
wxLocale *m_pOldLocale; // previous wxLocale
|
wxLocale *m_pOldLocale; // previous wxLocale
|
||||||
|
#ifdef __WIN32__
|
||||||
|
wxUint32 m_oldLCID;
|
||||||
|
#endif
|
||||||
|
|
||||||
bool m_initialized;
|
bool m_initialized;
|
||||||
|
|
||||||
|
@@ -253,6 +253,9 @@ void wxLocale::DoCommonInit()
|
|||||||
if ( m_pszOldLocale )
|
if ( m_pszOldLocale )
|
||||||
m_pszOldLocale = wxStrdup(m_pszOldLocale);
|
m_pszOldLocale = wxStrdup(m_pszOldLocale);
|
||||||
|
|
||||||
|
#ifdef __WIN32__
|
||||||
|
m_oldLCID = ::GetThreadLocale();
|
||||||
|
#endif
|
||||||
|
|
||||||
m_pOldLocale = wxSetLocale(this);
|
m_pOldLocale = wxSetLocale(this);
|
||||||
|
|
||||||
@@ -1098,6 +1101,11 @@ wxLocale::~wxLocale()
|
|||||||
wxSetlocale(LC_ALL, m_pszOldLocale);
|
wxSetlocale(LC_ALL, m_pszOldLocale);
|
||||||
free(const_cast<char *>(m_pszOldLocale));
|
free(const_cast<char *>(m_pszOldLocale));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __WIN32__
|
||||||
|
::SetThreadLocale(m_oldLCID);
|
||||||
|
wxMSWSetThreadUILanguage(LANGIDFROMLCID(m_oldLCID));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user