From 0eeb16abaf3c1e7743fe045f96bba7a6792f7f57 Mon Sep 17 00:00:00 2001 From: Charlie Fenton Date: Fri, 11 Sep 2009 20:38:05 +0000 Subject: [PATCH] Mgr: skip exit confirmation dialog if user pressed emergency Exit button on AsyncRPCDlg svn path=/trunk/boinc/; revision=19046 --- checkin_notes | 14 +++++++++++--- clientgui/AsyncRPC.cpp | 5 ++++- clientgui/BOINCGUIApp.cpp | 8 ++++---- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/checkin_notes b/checkin_notes index f4a3181315..cac89f1d17 100644 --- a/checkin_notes +++ b/checkin_notes @@ -7225,9 +7225,9 @@ David 25 Aug 2009 parse.cpp Charlie 26 Aug 2009 - MGR: on Linux, check list of running processes from procinfo_setup() + - MGR: on Linux, check list of running processes from procinfo_setup() to determine if BOINC core client is running. - MGR: on Linux, accept 2 optional arguments: + - MGR: on Linux, accept 2 optional arguments: "--clientdir=" or "-e " for directory containing client executable, default is the directory containing the manager executable. "--datadir=" or "-d " for BOINC data directory, default is the @@ -7255,7 +7255,7 @@ David 26 Aug 2009 sched_send.cpp Charlie 26 Aug 2009 - MGR: Bug fixes for Linux. + - MGR: Bug fixes for Linux. clientgui/ AsyncRPC.cpp @@ -7638,3 +7638,11 @@ David 11 Sept 2009 client/ client_state.cpp + +Charlie 11 Sept 2009 + - Mgr: skip exit confirmation dialog if user pressed emergency Exit button + on AsyncRPCDlg. + + clientgui/ + AsyncRPC.cpp + BOINCGUIApp.cpp diff --git a/clientgui/AsyncRPC.cpp b/clientgui/AsyncRPC.cpp index ef66bbfe2a..6e5053e1bd 100755 --- a/clientgui/AsyncRPC.cpp +++ b/clientgui/AsyncRPC.cpp @@ -34,6 +34,8 @@ #include "SkinManager.h" #include "util.h" +extern bool s_bSkipExitConfirmation; + #ifdef __WXMAC__ #ifdef HAVE_PTHREAD_MUTEXATTR_T @@ -243,7 +245,7 @@ void BOINC_Condition::Broadcast() { pthread_cond_broadcast(&m_cond); } -#endif +#endif // __WXMAC__ // Delay in milliseconds before showing AsyncRPCDlg #define RPC_WAIT_DLG_DELAY 1500 @@ -834,6 +836,7 @@ int CMainDocument::RequestRPC(ASYNC_RPC_REQUEST& request, bool hasPriority) { if (response == wxID_EXIT) { pFrame = wxGetApp().GetFrame(); wxCommandEvent evt(wxEVT_COMMAND_MENU_SELECTED, wxID_EXIT); + s_bSkipExitConfirmation = true; pFrame->AddPendingEvent(evt); } } diff --git a/clientgui/BOINCGUIApp.cpp b/clientgui/BOINCGUIApp.cpp index d20486f4a9..d207a7fef5 100644 --- a/clientgui/BOINCGUIApp.cpp +++ b/clientgui/BOINCGUIApp.cpp @@ -72,7 +72,7 @@ BEGIN_EVENT_TABLE (CBOINCGUIApp, wxApp) END_EVENT_TABLE () -static bool s_bSkipExitConfirmation = false; +bool s_bSkipExitConfirmation = false; #ifdef __WXMAC__ @@ -134,7 +134,6 @@ bool CBOINCGUIApp::OnInit() { g_use_sandbox = false; #endif - // Initialize statics s_bSkipExitConfirmation = false; // Initialize class variables @@ -994,11 +993,12 @@ int CBOINCGUIApp::ConfirmExit() { } } -#ifndef __WXMSW__ - // Don't run confirmation dialog if logging out or shutting down + // Don't run confirmation dialog if logging out or shutting down Mac, + // or if emergency exit from AsyncRPCDlg if (s_bSkipExitConfirmation) return 1; +#ifndef __WXMSW__ if (!m_iDisplayExitDialog) { return 1; // User doesn't want to display the dialog and wants to shutdown the client. }