diff --git a/pcbnew/tools/pcb_selection_tool.cpp b/pcbnew/tools/pcb_selection_tool.cpp index 05ba1d1d7d..109031c606 100644 --- a/pcbnew/tools/pcb_selection_tool.cpp +++ b/pcbnew/tools/pcb_selection_tool.cpp @@ -2703,8 +2703,22 @@ bool PCB_SELECTION_TOOL::Selectable( const BOARD_ITEM* aItem, bool checkVisibili // Most footprint children can only be selected in the footprint editor. if( aItem->GetParentFootprint() && !m_isFootprintEditor && !checkVisibilityOnly ) { - if( aItem->Type() != PCB_FIELD_T && aItem->Type() != PCB_PAD_T ) + if( aItem->Type() == PCB_TEXT_T ) + { + text = static_cast( aItem ); + + // Special case for version 8 until we have a consistent way to convert these text + // to fields + if( !text->GetText().Contains( wxT( "${REFERENCE}" ) ) + && !text->GetText().Contains( wxT( "${VALUE}" ) ) ) + { + return false; + } + } + else if( aItem->Type() != PCB_FIELD_T && aItem->Type() != PCB_PAD_T ) + { return false; + } } switch( aItem->Type() )