diff --git a/eeschema/tools/ee_selection_tool.cpp b/eeschema/tools/ee_selection_tool.cpp index ff7af8ab6e..d2dd65ea57 100644 --- a/eeschema/tools/ee_selection_tool.cpp +++ b/eeschema/tools/ee_selection_tool.cpp @@ -1970,9 +1970,14 @@ void EE_SELECTION_TOOL::SyncSelection( const std::optional& targ // Perform individual selection of each item before processing the event. for( SCH_ITEM* item : items ) { + SCH_ITEM* parent = dynamic_cast( item->GetParent() ); + // Make sure we only select items on the current screen - if( m_frame->GetScreen()->CheckIfOnDrawList( item ) ) + if( m_frame->GetScreen()->CheckIfOnDrawList( item ) + || ( parent && m_frame->GetScreen()->CheckIfOnDrawList( parent ) ) ) + { select( item ); + } } BOX2I bbox = m_selection.GetBoundingBox();