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:18:35 +01:00
parent df3a57dcda
commit b16d4d18e0
1 changed files with 8 additions and 2 deletions

View File

@ -698,7 +698,9 @@ EDA_ITEM* GERBVIEW_SELECTION_TOOL::disambiguationMenu( GERBER_COLLECTOR* aCollec
bool GERBVIEW_SELECTION_TOOL::selectable( const EDA_ITEM* aItem ) const 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() ) if( item->GetLayerPolarity() )
{ {
@ -708,7 +710,11 @@ bool GERBVIEW_SELECTION_TOOL::selectable( const EDA_ITEM* aItem ) const
return false; 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 );
} }