Improve visibility controls of PTH pads

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5095
This commit is contained in:
Jon Evans 2020-10-25 16:32:06 -04:00
parent 48a67e1ff8
commit be0de8d151
1 changed files with 12 additions and 3 deletions

View File

@ -1193,9 +1193,18 @@ double D_PAD::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const
if( IsBackLayer( (PCB_LAYER_ID) aLayer ) && !aView->IsLayerVisible( LAYER_PAD_BK ) )
return HIDE;
// Only draw the pad if at least one of the layers it crosses is being displayed
if( board && !FlashLayer( board->GetVisibleLayers()) )
return HIDE;
if( board )
{
LSET visible = board->GetVisibleLayers() & board->GetEnabledLayers();
// Only draw the pad if at least one of the layers it crosses is being displayed
if( !FlashLayer( visible ) )
return HIDE;
// Don't draw the copper ring of a PTH if none of the copper layers are visible
if( aLayer == LAYER_PADS_TH && ( LSET::AllCuMask() & GetLayerSet() & visible ).none() )
return HIDE;
}
// Netnames will be shown only if zoom is appropriate
if( IsNetnameLayer( aLayer ) )