Don't double-offset effective text shapes.

Also fixes several bugs with intersheet ref fields.  (It's possible for
other fields to have an ID of 0.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15165

(cherry picked from commit eedf319ba4)
This commit is contained in:
Jeff Young 2023-07-10 19:31:12 +01:00
parent 691931f74d
commit af1561b848
4 changed files with 4 additions and 4 deletions

View File

@ -898,7 +898,7 @@ std::shared_ptr<SHAPE_COMPOUND> EDA_TEXT::GetEffectiveTextShape( bool aTriangula
attrs.m_Angle = GetDrawRotation();
if( font->IsOutline() )
cache = GetRenderCache( font, shownText, drawPos );
cache = GetRenderCache( font, shownText, VECTOR2I() );
}
else
{

View File

@ -667,7 +667,7 @@ void DIALOG_SCH_FIELD_PROPERTIES::UpdateField( SCH_FIELD* aField, SCH_SHEET_PATH
}
else if( parent && parent->Type() == SCH_GLOBAL_LABEL_T )
{
if( fieldType == 0 )
if( aField->GetCanonicalName() == wxT( "Intersheetrefs" ) )
{
if( m_visible->GetValue() != parent->Schematic()->Settings().m_IntersheetRefsShow )
{

View File

@ -94,7 +94,7 @@ public:
bool IsHypertext() const override
{
return m_id == 0 && m_parent && m_parent->Type() == SCH_GLOBAL_LABEL_T;
return GetCanonicalName() == wxT( "Intersheetrefs" );
}
void DoHypertextAction( EDA_DRAW_FRAME* aFrame ) const override;

View File

@ -1150,7 +1150,7 @@ void EE_SELECTION_TOOL::GuessSelectionCandidates( EE_COLLECTOR& collector, const
}
}
text->GetEffectiveTextShape( false )->Collide( poss, closestDist, &dist );
text->GetEffectiveTextShape( false )->Collide( poss, INT_MAX / 2, &dist );
}
else if( symbol )
{