diff --git a/eeschema/tools/sch_edit_tool.cpp b/eeschema/tools/sch_edit_tool.cpp index 6a4ee9b06c..387d95fd94 100644 --- a/eeschema/tools/sch_edit_tool.cpp +++ b/eeschema/tools/sch_edit_tool.cpp @@ -990,9 +990,6 @@ const std::vector swappableItems = { SCH_SYMBOL_T, SCH_SHEET_T, SCH_BITMAP_T, - SCH_BUS_BUS_ENTRY_T, - SCH_BUS_WIRE_ENTRY_T, - SCH_LINE_T, SCH_JUNCTION_T, SCH_NO_CONNECT_T }; diff --git a/pcbnew/tools/edit_tool_move_fct.cpp b/pcbnew/tools/edit_tool_move_fct.cpp index 693f94f73c..e9127bf2f3 100644 --- a/pcbnew/tools/edit_tool_move_fct.cpp +++ b/pcbnew/tools/edit_tool_move_fct.cpp @@ -285,6 +285,19 @@ int EDIT_TOOL::Swap( const TOOL_EVENT& aEvent ) sTool->FilterCollectorForMarkers( aCollector ); sTool->FilterCollectorForHierarchy( aCollector, true ); sTool->FilterCollectorForFreePads( aCollector ); + + // Iterate from the back so we don't have to worry about removals. + for( int i = aCollector.GetCount() - 1; i >= 0; --i ) + { + BOARD_ITEM* item = aCollector[i]; + + switch( item->Type() ) + { + case PCB_TRACE_T: aCollector.Remove( item ); break; + + default: break; + } + } }, true /* prompt user regarding locked items */ ); diff --git a/pcbnew/tools/pcb_actions.cpp b/pcbnew/tools/pcb_actions.cpp index 689040956a..39fb90602d 100644 --- a/pcbnew/tools/pcb_actions.cpp +++ b/pcbnew/tools/pcb_actions.cpp @@ -338,7 +338,7 @@ TOOL_ACTION PCB_ACTIONS::mirrorV( "pcbnew.InteractiveEdit.mirrorVertically", TOOL_ACTION PCB_ACTIONS::swap( "pcbnew.InteractiveEdit.swap", AS_GLOBAL, - 'S', "", + MD_SHIFT + 'S', "", _( "Swap" ), _( "Swaps selected items' positions" ), BITMAPS::swap );