From c36080a25095974c1dba767bc3247070d7a487d9 Mon Sep 17 00:00:00 2001 From: Marek Roszko Date: Wed, 12 Aug 2020 18:17:51 -0400 Subject: [PATCH] Immediate fix to prevent crashing, don't call ClosePlayers twice Fixes https://gitlab.com/kicad/code/kicad/-/issues/5164 --- kicad/kicad_manager_frame.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/kicad/kicad_manager_frame.cpp b/kicad/kicad_manager_frame.cpp index 70a6574b59..54d8d33888 100644 --- a/kicad/kicad_manager_frame.cpp +++ b/kicad/kicad_manager_frame.cpp @@ -303,7 +303,7 @@ void KICAD_MANAGER_FRAME::OnSize( wxSizeEvent& event ) } -void KICAD_MANAGER_FRAME::OnCloseWindow( wxCloseEvent& Event ) +void KICAD_MANAGER_FRAME::OnCloseWindow( wxCloseEvent& aEvent ) { #ifdef _WINDOWS_ // For some obscure reason, on Windows, when killing Kicad from the Windows task manager @@ -321,17 +321,14 @@ void KICAD_MANAGER_FRAME::OnCloseWindow( wxCloseEvent& Event ) } #endif - if( Kiway().PlayersClose( false ) ) - { - Event.SetCanVeto( true ); - - // Save the list of open projects before closing the project - KICAD_SETTINGS* settings = kicadSettings(); - settings->m_OpenProjects = GetSettingsManager()->GetOpenProjects(); + // Save the list of open projects before closing the project + KICAD_SETTINGS* settings = kicadSettings(); + settings->m_OpenProjects = GetSettingsManager()->GetOpenProjects(); - // Ensure the project is closed before destruction. - CloseProject( true ); + aEvent.SetCanVeto( true ); + if( CloseProject( true ) ) + { m_leftWin->Show( false ); Destroy();