diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index bcc7aa61e7..615999684d 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -503,14 +503,27 @@ void DRAWSEGMENT::GetMsgPanelInfo( EDA_UNITS_T aUnits, std::vector< MSG_PANEL_IT } } - wxString start = wxString::Format( "@(%s, %s)", - MessageTextFromValue( aUnits, GetStart().x ), - MessageTextFromValue( aUnits, GetStart().y ) ); - wxString end = wxString::Format( "@(%s, %s)", - MessageTextFromValue( aUnits, GetEnd().x ), - MessageTextFromValue( aUnits, GetEnd().y ) ); + if( m_Shape == S_POLYGON ) + { + VECTOR2I point0 = GetPolyShape().Outline(0).CPoint(0); + wxString origin = wxString::Format( "@(%s, %s)", + MessageTextFromValue( aUnits, point0.x ), + MessageTextFromValue( aUnits, point0.y ) ); + + aList.emplace_back( _( "Origin" ), origin, DARKGREEN ); + } + else + { + wxString start = wxString::Format( "@(%s, %s)", + MessageTextFromValue( aUnits, GetStart().x ), + MessageTextFromValue( aUnits, GetStart().y ) ); + wxString end = wxString::Format( "@(%s, %s)", + MessageTextFromValue( aUnits, GetEnd().x ), + MessageTextFromValue( aUnits, GetEnd().y ) ); + + aList.emplace_back( start, end, DARKGREEN ); + } - aList.emplace_back( start, end, DARKGREEN ); aList.emplace_back( _( "Layer" ), GetLayerName(), DARKBROWN ); msg = MessageTextFromValue( aUnits, m_Width, true );