On windows, ignore WM_QUERYENDSESSION and close upon WM_ENDSESSION.

The messages can come through CFrame::MSWWindowProc and the wxApp implementation, so make sure to catch both.
Fixes issue 6546.
This commit is contained in:
Shawn Hoffman
2013-09-10 03:14:21 -07:00
parent 2d492bdc4f
commit 484130049d
3 changed files with 27 additions and 0 deletions

View File

@ -71,6 +71,8 @@ IMPLEMENT_APP(DolphinApp)
BEGIN_EVENT_TABLE(DolphinApp, wxApp)
EVT_TIMER(wxID_ANY, DolphinApp::AfterInit)
EVT_QUERY_END_SESSION(DolphinApp::OnEndSession)
EVT_END_SESSION(DolphinApp::OnEndSession)
END_EVENT_TABLE()
#include <wx/stdpaths.h>
@ -433,6 +435,15 @@ void DolphinApp::InitLanguageSupport()
}
}
void DolphinApp::OnEndSession(wxCloseEvent& event)
{
// Close if we've recieved wxEVT_END_SESSION (ignore wxEVT_QUERY_END_SESSION)
if (!event.CanVeto())
{
main_frame->Close(true);
}
}
int DolphinApp::OnExit()
{
WiimoteReal::Shutdown();