Commit 8f5e6bad authored by Maciej Suminski's avatar Maciej Suminski

Removed selection disambiguation in case when there is a choice between a...

Removed selection disambiguation in case when there is a choice between a footprint and a smaller component (smaller components have priority).
parent 382c6bd2
...@@ -151,7 +151,7 @@ int SELECTION_TOOL::Main( TOOL_EVENT& aEvent ) ...@@ -151,7 +151,7 @@ int SELECTION_TOOL::Main( TOOL_EVENT& aEvent )
void SELECTION_TOOL::toggleSelection( BOARD_ITEM* aItem ) void SELECTION_TOOL::toggleSelection( BOARD_ITEM* aItem )
{ {
if( aItem->IsSelected() ) if( m_selectedItems.find( aItem ) != m_selectedItems.end() )
{ {
aItem->ClearSelected(); aItem->ClearSelected();
m_selectedItems.erase( aItem ); m_selectedItems.erase( aItem );
...@@ -204,9 +204,29 @@ void SELECTION_TOOL::selectSingle( const VECTOR2I& aWhere ) ...@@ -204,9 +204,29 @@ void SELECTION_TOOL::selectSingle( const VECTOR2I& aWhere )
break; break;
default: default:
item = disambiguationMenu( &collector ); // Remove footprints, they have to be selected by clicking on area that does not
if( item ) // contain anything but footprint
toggleSelection( item ); for( int i = 0; i < collector.GetCount(); ++i )
{
BOARD_ITEM* boardItem = ( collector )[i];
if( boardItem->Type() == PCB_MODULE_T )
{
wxLogDebug( wxT( "Removing %s" ), boardItem->GetSelectMenuText() );
collector.Remove( i );
}
}
// Let's see if there is still disambiguation in selection..
if( collector.GetCount() == 1 )
{
toggleSelection( collector[0] );
}
else
{
item = disambiguationMenu( &collector );
if( item )
toggleSelection( item );
}
break; break;
} }
} }
...@@ -326,7 +346,7 @@ BOARD_ITEM* SELECTION_TOOL::disambiguationMenu( GENERAL_COLLECTOR* aCollector ) ...@@ -326,7 +346,7 @@ BOARD_ITEM* SELECTION_TOOL::disambiguationMenu( GENERAL_COLLECTOR* aCollector )
for( int i = 0; i < limit; ++i ) for( int i = 0; i < limit; ++i )
{ {
wxString text; wxString text;
BOARD_ITEM *item = ( *aCollector )[i]; BOARD_ITEM* item = ( *aCollector )[i];
text = item->GetSelectMenuText(); text = item->GetSelectMenuText();
m_menu->Add( text, i ); m_menu->Add( text, i );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment