When dragging footprints pads with holes also need to be taken along.

Otherwise (aside from not colliding with their dragged location) we
won't update their locations and then if they happen to be the first
pad in the footprint we'll try to update the footprint's location post-
drag with the pad offset (which will be {0,0}.

This is easily reproducible with the test document in the bug in the
"fixes" statement.

Fixes https://gitlab.com/kicad/code/kicad/issues/9391
This commit is contained in:
Jeff Young 2021-11-25 14:51:54 +00:00
parent f9e1429c60
commit ade8fe4333
1 changed files with 3 additions and 3 deletions

View File

@ -117,14 +117,14 @@ bool COMPONENT_DRAGGER::Start( const VECTOR2I& aP, ITEM_SET& aPrimitives )
if( item.item->Kind() != ITEM::SOLID_T )
continue;
if( ! item.item->IsRoutable() )
continue;
auto solid = static_cast<SOLID*>( item.item );
auto jt = m_world->FindJoint( solid->Pos(), solid );
m_solids.insert( solid );
if( ! item.item->IsRoutable() )
continue;
for( auto link : jt->LinkList() )
{
if( link.item->OfKind( ITEM::SEGMENT_T | ITEM::ARC_T ) )