7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-18 23:21:41 +00:00

router: take overlapping segments/arcs into account when syncing board state to router state

Fixes https://gitlab.com/kicad/code/kicad/issues/19581
This commit is contained in:
Tomasz Wlostowski 2025-01-11 01:36:18 +01:00
parent 9a63662844
commit 4ee52a21d0
2 changed files with 5 additions and 2 deletions

View File

@ -1741,12 +1741,12 @@ void PNS_KICAD_IFACE_BASE::SyncWorld( PNS::NODE *aWorld )
if( type == PCB_TRACE_T )
{
if( std::unique_ptr<PNS::SEGMENT> segment = syncTrack( t ) )
aWorld->Add( std::move( segment ) );
aWorld->Add( std::move( segment ), true );
}
else if( type == PCB_ARC_T )
{
if( std::unique_ptr<PNS::ARC> arc = syncArc( static_cast<PCB_ARC*>( t ) ) )
aWorld->Add( std::move( arc ) );
aWorld->Add( std::move( arc ), true );
}
else if( type == PCB_VIA_T )
{

View File

@ -2228,6 +2228,9 @@ int ROUTER_TOOL::InlineDrag( const TOOL_EVENT& aEvent )
{
PNS::ITEM* pitem = m_router->GetWorld()->FindItemByParent( static_cast<const BOARD_ITEM*>( bitem ) );
if( !pitem )
continue;
if( pitem->OfKind( PNS::ITEM::SEGMENT_T ) || pitem->OfKind( PNS::ITEM::VIA_T ) || pitem->OfKind( PNS::ITEM::ARC_T ) )
{
itemsToDrag.Add( pitem );