1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-19 21:10:12 +02:00

- Show confirmation dialog when pressing Alt + F4 to quit the game

This commit is contained in:
beegee1 2013-12-07 18:26:15 +00:00
parent 30b3081ac4
commit f2cc630e2c

View File

@ -846,7 +846,7 @@ static void listenForEvents()
(ev.type == SDL_KEYDOWN && ev.key.keysym.sym==SDLK_F4 && (ev.key.keysym.mod & KMOD_ALT)))
{
handleQuit();
break;
continue;
}
else if(LOCPLINT && ev.type == SDL_KEYDOWN && ev.key.keysym.sym==SDLK_F4)
{
@ -949,21 +949,34 @@ void startGame(StartInfo * options, CConnection *serv/* = nullptr*/)
void handleQuit()
{
if (client)
client->endGame();
if (mainGUIThread)
auto quitApplication = []()
{
GH.terminate = true;
mainGUIThread->join();
delete mainGUIThread;
mainGUIThread = nullptr;
}
delete console;
console = nullptr;
boost::this_thread::sleep(boost::posix_time::milliseconds(750));
if(!gNoGUI)
SDL_Quit();
if(client) client->endGame();
std::cout << "Ending...\n";
exit(0);
if(mainGUIThread)
{
GH.terminate = true;
if(mainGUIThread->get_id() != boost::this_thread::get_id()) mainGUIThread->join();
delete mainGUIThread;
mainGUIThread = nullptr;
}
delete console;
console = nullptr;
boost::this_thread::sleep(boost::posix_time::milliseconds(750));
if(!gNoGUI)
SDL_Quit();
std::cout << "Ending...\n";
exit(0);
};
if(client && LOCPLINT)
{
CCS->curh->changeGraphic(ECursor::ADVENTURE, 0);
LOCPLINT->showYesNoDialog(CGI->generaltexth->allTexts[69], quitApplication, 0);
}
else
{
quitApplication();
}
}