diff --git a/pcbnew/tools/selection_tool.cpp b/pcbnew/tools/selection_tool.cpp index cb7d9f7b0f..68ce5240c0 100644 --- a/pcbnew/tools/selection_tool.cpp +++ b/pcbnew/tools/selection_tool.cpp @@ -313,9 +313,14 @@ const SELECTION& SELECTION_TOOL::GetSelection() BOARD_ITEM* item = m_selection.Item( i ); if( !modifiable( item ) ) + { m_selection.items.RemovePicker( i ); + m_selection.group->Remove( item ); + } else + { ++i; + } } return m_selection; @@ -746,6 +751,9 @@ int SELECTION_TOOL::findMove( const TOOL_EVENT& aEvent ) void SELECTION_TOOL::clearSelection() { + if( m_selection.Empty() ) + return; + KIGFX::VIEW_GROUP::const_iter it, it_end; // Restore the initial properties