pcbnew: Allow deselection when clicking on zone
Deselection by clicking on a zone makes working with plane zones easier by allowing the selected item to de-selected by clicking on a zone. Once the selection is cleared, the zone may be re-selected as normal. Clicking on non-zone items while a separate item is selected will still select the new non-zone item without requiring a second click.
This commit is contained in:
parent
502383b759
commit
8c56f5b035
|
@ -288,13 +288,24 @@ int SELECTION_TOOL::Main( const TOOL_EVENT& aEvent )
|
|||
}
|
||||
else
|
||||
{
|
||||
CLIENT_SELECTION_FILTER filter = nullptr;
|
||||
|
||||
// If no modifier keys are pressed, clear the selection
|
||||
if( !m_additive )
|
||||
{
|
||||
if( m_selection.Size() != 0 )
|
||||
filter = []( const VECTOR2I&, GENERAL_COLLECTOR& aCollector )
|
||||
{
|
||||
for( int i = aCollector.GetCount() - 1; i >= 0; i-- )
|
||||
if( aCollector[i]->Type() == PCB_ZONE_AREA_T )
|
||||
aCollector.Remove( i );
|
||||
};
|
||||
|
||||
clearSelection();
|
||||
}
|
||||
|
||||
selectPoint( evt->Position() );
|
||||
selectPoint( evt->Position(), false, nullptr, filter );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue