Move tool shutdown to after all cancel opportunities.
Fixes https://gitlab.com/kicad/code/kicad/issues/4401
This commit is contained in:
parent
105f85e551
commit
c66bf3df67
|
@ -491,10 +491,6 @@ void SCH_EDIT_FRAME::OnCloseWindow( wxCloseEvent& aEvent )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shutdown all running tools ( and commit any pending change )
|
|
||||||
if( m_toolManager )
|
|
||||||
m_toolManager->ShutdownAllTools();
|
|
||||||
|
|
||||||
if( Kiface().IsSingle() )
|
if( Kiface().IsSingle() )
|
||||||
{
|
{
|
||||||
LIB_EDIT_FRAME* libeditFrame = (LIB_EDIT_FRAME*) Kiway().Player( FRAME_SCH_LIB_EDITOR, false );
|
LIB_EDIT_FRAME* libeditFrame = (LIB_EDIT_FRAME*) Kiway().Player( FRAME_SCH_LIB_EDITOR, false );
|
||||||
|
@ -516,7 +512,6 @@ void SCH_EDIT_FRAME::OnCloseWindow( wxCloseEvent& aEvent )
|
||||||
if( simFrame && !simFrame->Close() ) // Can close the simulator?
|
if( simFrame && !simFrame->Close() ) // Can close the simulator?
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
if( sheetList.IsModified() )
|
if( sheetList.IsModified() )
|
||||||
{
|
{
|
||||||
wxFileName fileName = g_RootSheet->GetScreen()->GetFileName();
|
wxFileName fileName = g_RootSheet->GetScreen()->GetFileName();
|
||||||
|
@ -530,6 +525,14 @@ void SCH_EDIT_FRAME::OnCloseWindow( wxCloseEvent& aEvent )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// OK, we're really closing now. No more returns after this.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Shutdown all running tools ( and commit any pending change )
|
||||||
|
if( m_toolManager )
|
||||||
|
m_toolManager->ShutdownAllTools();
|
||||||
|
|
||||||
// Close the find dialog and preserve it's setting if it is displayed.
|
// Close the find dialog and preserve it's setting if it is displayed.
|
||||||
if( m_findReplaceDialog )
|
if( m_findReplaceDialog )
|
||||||
{
|
{
|
||||||
|
@ -546,9 +549,7 @@ void SCH_EDIT_FRAME::OnCloseWindow( wxCloseEvent& aEvent )
|
||||||
}
|
}
|
||||||
|
|
||||||
if( FindHierarchyNavigator() )
|
if( FindHierarchyNavigator() )
|
||||||
{
|
|
||||||
FindHierarchyNavigator()->Close( true );
|
FindHierarchyNavigator()->Close( true );
|
||||||
}
|
|
||||||
|
|
||||||
SCH_SCREENS screens;
|
SCH_SCREENS screens;
|
||||||
wxFileName fn;
|
wxFileName fn;
|
||||||
|
@ -569,9 +570,7 @@ void SCH_EDIT_FRAME::OnCloseWindow( wxCloseEvent& aEvent )
|
||||||
wxString fileName = Prj().AbsolutePath( g_RootSheet->GetScreen()->GetFileName() );
|
wxString fileName = Prj().AbsolutePath( g_RootSheet->GetScreen()->GetFileName() );
|
||||||
|
|
||||||
if( !g_RootSheet->GetScreen()->GetFileName().IsEmpty() && !g_RootSheet->GetScreen()->IsEmpty() )
|
if( !g_RootSheet->GetScreen()->GetFileName().IsEmpty() && !g_RootSheet->GetScreen()->IsEmpty() )
|
||||||
{
|
|
||||||
UpdateFileHistory( fileName );
|
UpdateFileHistory( fileName );
|
||||||
}
|
|
||||||
|
|
||||||
g_RootSheet->GetScreen()->Clear();
|
g_RootSheet->GetScreen()->Clear();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue