Careful that we don't move the wrong end of the arc.

Fixes https://gitlab.com/kicad/code/kicad/issues/7409
This commit is contained in:
Jeff Young 2021-02-03 23:50:46 +00:00
parent 90b3d0c96d
commit 065a16b48c
1 changed files with 8 additions and 4 deletions

View File

@ -585,9 +585,9 @@ int PCB_POINT_EDITOR::OnSelectionChange( const TOOL_EVENT& aEvent )
return 0;
}
void PCB_POINT_EDITOR::editArcEndpointKeepTangent( PCB_SHAPE* aArc, VECTOR2I aCenter, VECTOR2I aStart,
VECTOR2I aMid, VECTOR2I aEnd,
const VECTOR2I aCursor ) const
void PCB_POINT_EDITOR::editArcEndpointKeepTangent( PCB_SHAPE* aArc, VECTOR2I aCenter,
VECTOR2I aStart, VECTOR2I aMid, VECTOR2I aEnd,
const VECTOR2I aCursor ) const
{
VECTOR2D startLine = aStart - aCenter;
VECTOR2D endLine = aEnd - aCenter;
@ -608,7 +608,7 @@ void PCB_POINT_EDITOR::editArcEndpointKeepTangent( PCB_SHAPE* aArc, VECTOR2I aCe
p3 = &aMid;
movingStart = true;
}
else
else if( aEnd != aArc->GetArcEnd() )
{
aEnd = aCursor;
p1 = &aStart;
@ -616,6 +616,10 @@ void PCB_POINT_EDITOR::editArcEndpointKeepTangent( PCB_SHAPE* aArc, VECTOR2I aCe
p3 = &aMid;
movingStart = false;
}
else
{
return;
}
VECTOR2D v1, v2, v3, v4;