Don't select items on inactive layers in high-contrast mode.

Fixes: lp:1833870
* https://bugs.launchpad.net/kicad/+bug/1833870
This commit is contained in:
Jeff Young 2019-06-26 01:13:30 +01:00
parent 15cd13ba6e
commit da645c5d16
1 changed files with 9 additions and 2 deletions

View File

@ -657,7 +657,10 @@ EDA_ITEM* GERBVIEW_SELECTION_TOOL::disambiguationMenu( GERBER_COLLECTOR* aCollec
bool GERBVIEW_SELECTION_TOOL::selectable( const EDA_ITEM* aItem ) const
{
auto item = static_cast<const GERBER_DRAW_ITEM*>( aItem );
GERBVIEW_FRAME* frame = getEditFrame<GERBVIEW_FRAME>();
const GERBER_DRAW_ITEM* item = static_cast<const GERBER_DRAW_ITEM*>( aItem );
int layer = item->GetLayer();
if( item->GetLayerPolarity() )
{
@ -667,7 +670,11 @@ bool GERBVIEW_SELECTION_TOOL::selectable( const EDA_ITEM* aItem ) const
return false;
}
return getEditFrame<GERBVIEW_FRAME>()->IsLayerVisible( item->GetLayer() );
// We do not want to select items that are in the background
if( frame->m_DisplayOptions.m_HighContrastMode && layer != frame->GetActiveLayer() )
return false;
return frame->IsLayerVisible( layer );
}