From 38cde901b0dd9863763a3c925dba637df7427dbc Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Mon, 14 Mar 2022 00:17:37 +0000 Subject: [PATCH] Don't use last-resolved caches for graphic lines. Fixes https://gitlab.com/kicad/code/kicad/issues/11127 --- eeschema/sch_line.cpp | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/eeschema/sch_line.cpp b/eeschema/sch_line.cpp index 346157c10f..2eab7941f8 100644 --- a/eeschema/sch_line.cpp +++ b/eeschema/sch_line.cpp @@ -241,12 +241,19 @@ COLOR4D SCH_LINE::GetLineColor() const { m_lastResolvedColor = m_stroke.GetColor(); } - else if( IsConnectable() && !IsConnectivityDirty() ) + else if( IsConnectable() ) { - NETCLASSPTR netclass = NetClass(); + if( !IsConnectivityDirty() ) + { + NETCLASSPTR netclass = NetClass(); - if( netclass ) - m_lastResolvedColor = netclass->GetSchematicColor(); + if( netclass ) + m_lastResolvedColor = netclass->GetSchematicColor(); + } + } + else + { + m_lastResolvedColor = COLOR4D::UNSPECIFIED; } return m_lastResolvedColor; @@ -292,12 +299,19 @@ PLOT_DASH_TYPE SCH_LINE::GetEffectiveLineStyle() const { m_lastResolvedLineStyle = m_stroke.GetPlotStyle(); } - else if( IsConnectable() && !IsConnectivityDirty() ) + else if( IsConnectable() ) { - NETCLASSPTR netclass = NetClass(); + if( !IsConnectivityDirty() ) + { + NETCLASSPTR netclass = NetClass(); - if( netclass ) - m_lastResolvedLineStyle = static_cast( netclass->GetLineStyle() ); + if( netclass ) + m_lastResolvedLineStyle = static_cast( netclass->GetLineStyle() ); + } + } + else + { + m_lastResolvedLineStyle = PLOT_DASH_TYPE::DASH; } return m_lastResolvedLineStyle;