Skip to content

Commit 30d8e6d

Browse files
Fix Console (F8) not maintaining position & size when GUI Skin changed (#3803)
1 parent 84437e4 commit 30d8e6d

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

Client/core/CGUI.cpp

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,15 @@ CLocalGUI::~CLocalGUI()
5656

5757
void CLocalGUI::SetSkin(const char* szName)
5858
{
59+
CVector2D consolePos, consoleSize;
60+
5961
bool guiWasLoaded = m_pMainMenu != NULL;
6062
if (guiWasLoaded)
63+
{
64+
consolePos = m_pConsole->GetPosition();
65+
consoleSize = m_pConsole->GetSize();
6166
DestroyWindows();
67+
}
6268

6369
std::string error;
6470

@@ -93,7 +99,11 @@ void CLocalGUI::SetSkin(const char* szName)
9399
m_LastSettingsRevision = cvars->GetRevision();
94100

95101
if (guiWasLoaded)
102+
{
96103
CreateWindows(guiWasLoaded);
104+
m_pConsole->SetPosition(consolePos);
105+
m_pConsole->SetSize(consoleSize);
106+
}
97107

98108
if (CCore::GetSingleton().GetConsole() && !error.empty())
99109
CCore::GetSingleton().GetConsole()->Echo(error.c_str());
@@ -104,8 +114,8 @@ void CLocalGUI::ChangeLocale(const char* szName)
104114
bool guiWasLoaded = m_pMainMenu != NULL;
105115
assert(guiWasLoaded);
106116

107-
CVector2D vPos = m_pConsole->GetPosition();
108-
CVector2D vSize = m_pConsole->GetSize();
117+
CVector2D consolePos = m_pConsole->GetPosition();
118+
CVector2D consoleSize = m_pConsole->GetSize();
109119

110120
if (guiWasLoaded)
111121
DestroyWindows();
@@ -119,12 +129,8 @@ void CLocalGUI::ChangeLocale(const char* szName)
119129
if (guiWasLoaded)
120130
{
121131
CreateWindows(guiWasLoaded);
122-
123-
if (m_pConsole != nullptr)
124-
{
125-
m_pConsole->SetPosition(vPos);
126-
m_pConsole->SetSize(vSize);
127-
}
132+
m_pConsole->SetPosition(consolePos);
133+
m_pConsole->SetSize(consoleSize);
128134
}
129135
}
130136

0 commit comments

Comments
 (0)