Check to see if isolating junction is part of the drag or not.

Fixes https://gitlab.com/kicad/code/kicad/issues/5960
This commit is contained in:
Jeff Young 2020-10-13 13:52:15 +01:00
parent 1703729269
commit fd874d8345
1 changed files with 6 additions and 6 deletions

View File

@ -505,13 +505,13 @@ void SCH_MOVE_TOOL::getConnectedDragItems( SCH_ITEM* aOriginalItem, wxPoint aPoi
{
EE_RTREE& items = m_frame->GetScreen()->Items();
EE_RTREE::EE_TYPE itemsOverlapping = items.Overlapping( aOriginalItem->GetBoundingBox() );
bool ptHasJunction = false;
bool ptHasUnselectedJunction = false;
for( SCH_ITEM* item : itemsOverlapping )
{
if( item->Type() == SCH_JUNCTION_T && item->IsConnected( aPoint ) )
if( item->Type() == SCH_JUNCTION_T && item->IsConnected( aPoint ) && !item->IsSelected() )
{
ptHasJunction = true;
ptHasUnselectedJunction = true;
break;
}
}
@ -527,9 +527,9 @@ void SCH_MOVE_TOOL::getConnectedDragItems( SCH_ITEM* aOriginalItem, wxPoint aPoi
{
case SCH_LINE_T:
{
// Select the connected end of wires/bus connections that don't have a junction to
// isolate them from the drag
if( ptHasJunction )
// Select the connected end of wires/bus connections that don't have an unselected
// junction isolating them from the drag
if( ptHasUnselectedJunction )
break;
SCH_LINE* testLine = static_cast<SCH_LINE*>( test );