Refresh RequestSelection selection if all items were filtered out.
If you have, for instance a pin selected and do a cmd-E we'll filter out the pin and then do nothing. We should instead treat it as a hover selection if everything got filtered.
This commit is contained in:
parent
4a3add7ac5
commit
2097411550
|
@ -493,17 +493,8 @@ void SCH_SELECTION_TOOL::guessSelectionCandidates( SCH_COLLECTOR& collector,
|
||||||
|
|
||||||
SELECTION& SCH_SELECTION_TOOL::RequestSelection( const KICAD_T aFilterList[] )
|
SELECTION& SCH_SELECTION_TOOL::RequestSelection( const KICAD_T aFilterList[] )
|
||||||
{
|
{
|
||||||
if( m_selection.Empty() )
|
// Filter an existing selection
|
||||||
{
|
if( !m_selection.Empty() )
|
||||||
VECTOR2D cursorPos = getViewControls()->GetCursorPosition( true );
|
|
||||||
|
|
||||||
clearSelection();
|
|
||||||
SelectPoint( cursorPos, aFilterList );
|
|
||||||
m_selection.SetIsHover( true );
|
|
||||||
|
|
||||||
return m_selection;
|
|
||||||
}
|
|
||||||
else // Trim an existing selection by aFilterList
|
|
||||||
{
|
{
|
||||||
for( int i = m_selection.GetSize() - 1; i >= 0; --i )
|
for( int i = m_selection.GetSize() - 1; i >= 0; --i )
|
||||||
{
|
{
|
||||||
|
@ -513,8 +504,19 @@ SELECTION& SCH_SELECTION_TOOL::RequestSelection( const KICAD_T aFilterList[] )
|
||||||
toggleSelection( item );
|
toggleSelection( item );
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_selection;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If nothing was selected, or we filtered everything out, do a hover selection
|
||||||
|
if( m_selection.Empty() )
|
||||||
|
{
|
||||||
|
VECTOR2D cursorPos = getViewControls()->GetCursorPosition( true );
|
||||||
|
|
||||||
|
clearSelection();
|
||||||
|
SelectPoint( cursorPos, aFilterList );
|
||||||
|
m_selection.SetIsHover( true );
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_selection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue