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 ); }