Preserve group membership when updating footprints via IPC API

This commit is contained in:
Lenny Khazan
2026-01-05 21:56:57 -05:00
committed by Jon Evans
parent 0596455809
commit 6f3aa92ae0
+10 -1
View File
@@ -511,9 +511,18 @@ HANDLER_RESULT<ItemRequestStatus> API_HANDLER_PCB::handleCreateUpdateItemsIntern
// can't use CopyFrom on them either.
if( boardItem->Type() == PCB_FOOTPRINT_T || boardItem->Type() == PCB_GROUP_T )
{
// Save group membership before removal, since Remove() severs the relationship
PCB_GROUP* parentGroup = dynamic_cast<PCB_GROUP*>( boardItem->GetParentGroup() );
commit->Remove( boardItem );
item->Serialize( newItem );
commit->Add( item.release() );
BOARD_ITEM* newBoardItem = item.release();
commit->Add( newBoardItem );
// Restore group membership for the newly added item
if( parentGroup )
parentGroup->AddItem( newBoardItem );
}
else
{