diff --git a/eeschema/sch_text.cpp b/eeschema/sch_text.cpp index b1cbce6fcf..3af7b4f94c 100644 --- a/eeschema/sch_text.cpp +++ b/eeschema/sch_text.cpp @@ -220,7 +220,14 @@ void SCH_TEXT::Rotate( wxPoint aPosition ) RotatePoint( &pt, aPosition, 900 ); SetTextPos( pt ); - SetLabelSpinStyle( (GetLabelSpinStyle() + 1) % 4 ); + int spin = GetLabelSpinStyle(); + + // Global and hierarchical labels spin backwards. Fix here because + // changing SetLabelSpinStyle would break existing designs. + if( this->Type() == SCH_GLOBAL_LABEL_T || this->Type() == SCH_HIERARCHICAL_LABEL_T ) + SetLabelSpinStyle( ( spin - 1 >= 0 ? ( spin - 1 ) : 3 ) ); + else + SetLabelSpinStyle( ( spin + 1 ) % 4 ); if( this->Type() == SCH_TEXT_T ) {