Fixed: Windowed resolution resetting when closing from login/outgame views.

--HG--
branch : develop
This commit is contained in:
Nimetu 2017-01-12 13:29:47 +02:00
parent 109725fc9e
commit 0f5ec6c0b4
2 changed files with 18 additions and 5 deletions

View file

@ -2043,13 +2043,9 @@ void CClientConfig::release ()
// Are we in window mode ?
if (ClientCfg.Windowed /* && !isWindowMaximized() */)
{
// Save windows position
// Save windows position. width/height are saved when leaving ingame.
writeInt("PositionX", x);
writeInt("PositionY", y);
// Save windows size
writeInt("Width", std::max((sint)width, 800));
writeInt("Height", std::max((sint)height, 600));
}
}

View file

@ -132,6 +132,19 @@ extern void selectTipsOfTheDay (uint tips);
// FUNCTIONS //
///////////////
// ***************************************************************************
// Saving ingame resolution when in windowed mode
static void saveIngameResolution()
{
if (ClientCfg.Windowed)
{
uint32 width, height;
Driver->getWindowSize(width, height);
ClientCfg.writeInt("Width", std::max((sint)width, 800));
ClientCfg.writeInt("Height", std::max((sint)height, 600));
}
}
// ***************************************************************************
// 3D element release, called from both releaseMainLoopReselect() and releaseMainLoop()
static void releaseMainLoopScenes()
@ -209,6 +222,8 @@ void releaseMainLoopReselect()
{
ProgressBar.release();
saveIngameResolution();
CInterfaceManager *pIM= CInterfaceManager::getInstance();
// save keys loaded and interface cfg (not done in releaseMainLoop() because done at end of mainLoop()...)
@ -364,6 +379,8 @@ void releaseMainLoop(bool closeConnection)
{
ProgressBar.release();
saveIngameResolution();
// Release R2 editor if applicable
R2::getEditor().autoConfigRelease(IsInRingSession);