Complementary patch to 3114fa4a (filter invisible vias when selecting)
This patch handles items selected with selection box. Fixes: lp:1743894 * https://bugs.launchpad.net/kicad/+bug/1743894
This commit is contained in:
parent
2b2612120c
commit
ef13b97ff7
|
@ -550,7 +550,6 @@ bool SELECTION_TOOL::selectMultiple()
|
||||||
|
|
||||||
if( evt->IsDrag( BUT_LEFT ) )
|
if( evt->IsDrag( BUT_LEFT ) )
|
||||||
{
|
{
|
||||||
|
|
||||||
// Start drawing a selection box
|
// Start drawing a selection box
|
||||||
area.SetOrigin( evt->DragOrigin() );
|
area.SetOrigin( evt->DragOrigin() );
|
||||||
area.SetEnd( evt->Position() );
|
area.SetEnd( evt->Position() );
|
||||||
|
@ -1524,12 +1523,37 @@ bool SELECTION_TOOL::selectable( const BOARD_ITEM* aItem ) const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PCB_VIA_T:
|
case PCB_VIA_T:
|
||||||
{
|
{
|
||||||
// For vias it is enough if only one of layers is visible
|
const VIA* via = static_cast<const VIA*>( aItem );
|
||||||
PCB_LAYER_ID top, bottom;
|
|
||||||
|
|
||||||
static_cast<const VIA*>( aItem )->LayerPair( &top, &bottom );
|
// Check if appropriate element layer is visible
|
||||||
|
switch( via->GetViaType() )
|
||||||
|
{
|
||||||
|
case VIA_THROUGH:
|
||||||
|
if( !board()->IsElementVisible( LAYER_VIA_THROUGH ) )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VIA_BLIND_BURIED:
|
||||||
|
if( !board()->IsElementVisible( LAYER_VIA_BBLIND ) )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VIA_MICROVIA:
|
||||||
|
if( !board()->IsElementVisible( LAYER_VIA_MICROVIA ) )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
wxFAIL;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// For vias it is enough if only one of its layers is visible
|
||||||
|
PCB_LAYER_ID top, bottom;
|
||||||
|
via->LayerPair( &top, &bottom );
|
||||||
|
|
||||||
return board()->IsLayerVisible( top ) || board()->IsLayerVisible( bottom );
|
return board()->IsLayerVisible( top ) || board()->IsLayerVisible( bottom );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue