Don't reset tail when changing track width/via sizes.

Fixes https://gitlab.com/kicad/code/kicad/issues/6314
This commit is contained in:
Jeff Young 2020-12-11 17:54:55 +00:00
parent af841d1318
commit 0ef63aca47
2 changed files with 15 additions and 7 deletions

View File

@ -238,6 +238,9 @@ public:
const VIA& Via() const { return m_via; } const VIA& Via() const { return m_via; }
void SetViaDiameter( int aDiameter ) { m_via.SetDiameter( aDiameter ); }
void SetViaDrill( int aDrill ) { m_via.SetDrill( aDrill ); }
virtual void Mark( int aMarker ) const override; virtual void Mark( int aMarker ) const override;
virtual void Unmark( int aMarker = -1 ) const override; virtual void Unmark( int aMarker = -1 ) const override;
virtual int Marker() const override; virtual int Marker() const override;

View File

@ -1341,15 +1341,20 @@ void LINE_PLACER::simplifyNewLine( NODE* aNode, SEGMENT* aLatest )
void LINE_PLACER::UpdateSizes( const SIZES_SETTINGS& aSizes ) void LINE_PLACER::UpdateSizes( const SIZES_SETTINGS& aSizes )
{
// initPlacement will kill the tail, don't do that unless the track size has changed
if( !m_idle && aSizes.TrackWidth() != m_sizes.TrackWidth() )
{ {
m_sizes = aSizes; m_sizes = aSizes;
initPlacement();
}
m_sizes = aSizes; if( !m_idle )
{
m_head.SetWidth( m_sizes.TrackWidth() );
m_tail.SetWidth( m_sizes.TrackWidth() );
if( m_head.EndsWithVia() )
{
m_head.SetViaDiameter( m_sizes.ViaDiameter() );
m_head.SetViaDrill( m_sizes.ViaDrill() );
}
}
} }