From 6d2f30005e93e9b543670d8cd3e33b0a0a742b72 Mon Sep 17 00:00:00 2001 From: Jon Evans Date: Fri, 19 Jun 2020 17:00:41 -0400 Subject: [PATCH] Don't blow up the sheet path when selecting an ERC item Fixes https://gitlab.com/kicad/code/kicad/-/issues/4685 --- eeschema/dialogs/dialog_erc.cpp | 4 ++-- eeschema/schematic.cpp | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/eeschema/dialogs/dialog_erc.cpp b/eeschema/dialogs/dialog_erc.cpp index 11221d77f0..af435daa75 100644 --- a/eeschema/dialogs/dialog_erc.cpp +++ b/eeschema/dialogs/dialog_erc.cpp @@ -350,11 +350,11 @@ void DIALOG_ERC::OnERCItemSelected( wxDataViewEvent& aEvent ) SCH_SHEET_PATH sheet; SCH_ITEM* item = m_parent->Schematic().GetSheets().GetItem( itemID, &sheet ); - if( item ) + if( item && item->GetClass() != wxT( "DELETED_SHEET_ITEM" ) ) { WINDOW_THAWER thawer( m_parent ); - if( sheet != m_parent->GetCurrentSheet() ) + if( !sheet.empty() && sheet != m_parent->GetCurrentSheet() ) { m_parent->GetToolManager()->RunAction( ACTIONS::cancelInteractive, true ); m_parent->GetToolManager()->RunAction( EE_ACTIONS::clearSelection, true ); diff --git a/eeschema/schematic.cpp b/eeschema/schematic.cpp index a9e4e39fe3..05c5eb2f7c 100644 --- a/eeschema/schematic.cpp +++ b/eeschema/schematic.cpp @@ -55,12 +55,16 @@ void SCHEMATIC::Reset() } + void SCHEMATIC::SetRoot( SCH_SHEET* aRootSheet ) { wxCHECK_RET( aRootSheet, "Call to SetRoot with null SCH_SHEET!" ); m_rootSheet = aRootSheet; + m_currentSheet->clear(); + m_currentSheet->push_back( m_rootSheet ); + m_connectionGraph->Reset(); }