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:
parent
9a63662844
commit
4ee52a21d0
pcbnew/router
@ -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 )
|
||||
{
|
||||
|
@ -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 );
|
||||
|
Loading…
Reference in New Issue
Block a user