diff --git a/pcbnew/pcb_base_edit_frame.cpp b/pcbnew/pcb_base_edit_frame.cpp index 2580985b9d..396909a3c5 100644 --- a/pcbnew/pcb_base_edit_frame.cpp +++ b/pcbnew/pcb_base_edit_frame.cpp @@ -55,13 +55,13 @@ void PCB_BASE_EDIT_FRAME::SetBoard( BOARD* aBoard ) { bool new_board = ( aBoard != m_Pcb ); - // The active tool might store a reference to the BOARD that is about to be deleted. - if( m_toolManager ) - m_toolManager->DeactivateTool(); - - // It has to be done before the previous board is destroyed by SetBoard() if( new_board ) + { + if( m_toolManager ) + m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD ); + GetGalCanvas()->GetView()->Clear(); + } PCB_BASE_FRAME::SetBoard( aBoard );