From 126225866b13bed96143a4d6c208b082fb5082ab Mon Sep 17 00:00:00 2001 From: Seth Hillbrand Date: Thu, 5 Jan 2023 15:28:31 -0800 Subject: [PATCH] Don't add footprint components to PCB group Footprint components are only group-able inside of the footprint editor Fixes https://gitlab.com/kicad/code/kicad/issues/13396 --- pcbnew/dialogs/dialog_group_properties.cpp | 1 + pcbnew/tools/group_tool.cpp | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pcbnew/dialogs/dialog_group_properties.cpp b/pcbnew/dialogs/dialog_group_properties.cpp index 3fa96e2e09..83fcfa449c 100644 --- a/pcbnew/dialogs/dialog_group_properties.cpp +++ b/pcbnew/dialogs/dialog_group_properties.cpp @@ -147,6 +147,7 @@ void DIALOG_GROUP_PROPERTIES::OnAddMember( wxCommandEvent& event ) void DIALOG_GROUP_PROPERTIES::DoAddMember( EDA_ITEM* aItem ) { + for( size_t ii = 0; ii < m_membersList->GetCount(); ++ii ) { if( aItem == static_cast( m_membersList->GetClientData( ii ) ) ) diff --git a/pcbnew/tools/group_tool.cpp b/pcbnew/tools/group_tool.cpp index 85f525bb89..a3620c3494 100644 --- a/pcbnew/tools/group_tool.cpp +++ b/pcbnew/tools/group_tool.cpp @@ -161,7 +161,15 @@ int GROUP_TOOL::PickNewMember( const TOOL_EVENT& aEvent ) if( m_propertiesDialog ) { - m_propertiesDialog->DoAddMember( sel.Front() ); + EDA_ITEM* elem = sel.Front(); + + if( !m_isFootprintEditor ) + { + while( elem->GetParent() && elem->GetParent()->Type() != PCB_T ) + elem = elem->GetParent(); + } + + m_propertiesDialog->DoAddMember( elem ); m_propertiesDialog->Show( true ); }