Lock track width after placing segment
We don't want to allow the full track width to change after placing a segment when we are in follow-segment mode. This would require either ripping up and re-solving the existing track or allowing potential DRC errors. Fixes https://gitlab.com/kicad/code/kicad/issues/9395
This commit is contained in:
parent
c61af21da8
commit
faba2b06c2
|
@ -1612,10 +1612,14 @@ void LINE_PLACER::UpdateSizes( const SIZES_SETTINGS& aSizes )
|
||||||
if( !m_idle )
|
if( !m_idle )
|
||||||
{
|
{
|
||||||
// If the track width continues from an existing track, we don't want to change the width.
|
// If the track width continues from an existing track, we don't want to change the width.
|
||||||
if( m_sizes.TrackWidthIsExplicit() || m_startItem->Kind() != ITEM::SEGMENT_T )
|
// Disallow changing width after the first segment has been fixed because we don't want to
|
||||||
|
// go back and rip up tracks or allow DRC errors
|
||||||
|
if( m_sizes.TrackWidthIsExplicit() || ( !HasPlacedAnything()
|
||||||
|
&& ( !m_startItem || m_startItem->Kind() != ITEM::SEGMENT_T ) ) )
|
||||||
{
|
{
|
||||||
m_head.SetWidth( m_sizes.TrackWidth() );
|
m_head.SetWidth( m_sizes.TrackWidth() );
|
||||||
m_tail.SetWidth( m_sizes.TrackWidth() );
|
m_tail.SetWidth( m_sizes.TrackWidth() );
|
||||||
|
m_currentTrace.SetWidth( m_sizes.TrackWidth() );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_head.EndsWithVia() )
|
if( m_head.EndsWithVia() )
|
||||||
|
|
Loading…
Reference in New Issue