Fix another place disallowing internal microvias.

Fixes https://gitlab.com/kicad/code/kicad/issues/8716
This commit is contained in:
Jeff Young 2021-07-02 15:48:32 +01:00
parent 98616d2c96
commit 780a8a5154
1 changed files with 18 additions and 18 deletions

View File

@ -885,25 +885,25 @@ int ROUTER_TOOL::handleLayerSwitch( const TOOL_EVENT& aEvent, bool aForceVia )
break;
case VIATYPE::MICROVIA:
wxASSERT_MSG( !selectLayer, "Unexpected select layer for microvia (microvia layers are "
"implicit)" );
if( currentLayer == F_Cu || currentLayer == In1_Cu )
if( targetLayer == UNDEFINED_LAYER )
{
// front-side microvia
currentLayer = F_Cu;
targetLayer = In1_Cu;
}
else if( currentLayer == B_Cu || currentLayer == layerCount - 2 )
{
// back-side microvia
currentLayer = B_Cu,
targetLayer = (PCB_LAYER_ID) ( layerCount - 2 );
}
else
{
wxASSERT_MSG( false, "Invalid layer pair for microvia (must be on or adjacent to an "
"outer layer)" );
if( currentLayer == F_Cu || currentLayer == In1_Cu )
{
// front-side microvia
currentLayer = F_Cu;
targetLayer = In1_Cu;
}
else if( currentLayer == B_Cu || currentLayer == layerCount - 2 )
{
// back-side microvia
currentLayer = B_Cu,
targetLayer = (PCB_LAYER_ID) ( layerCount - 2 );
}
else
{
wxASSERT_MSG( false, "Invalid implicit layer pair for microvia (must be on or "
"adjacent to an outer layer)." );
}
}
break;