Libedit: other fix in pin edition.
This commit is contained in:
parent
70de08f397
commit
2d972fcf66
|
@ -957,7 +957,7 @@ void LIB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPosition,
|
|||
break;
|
||||
|
||||
case HK_ROTATE:
|
||||
if( m_drawItem == NULL )
|
||||
if( ! itemInEdit )
|
||||
m_drawItem = LocateItemUsingCursor( aPosition );
|
||||
|
||||
if( m_drawItem )
|
||||
|
|
|
@ -1878,16 +1878,29 @@ int LIB_PIN::GetOrientationCodeIndex( int code )
|
|||
|
||||
void LIB_PIN::Rotate()
|
||||
{
|
||||
// Get the actual pin orientation index
|
||||
int i = GetOrientationCodeIndex( GetOrientation() );
|
||||
int orient = PIN_RIGHT;
|
||||
|
||||
// Compute the next orientation, swap lower two bits for the right order
|
||||
i = ( (i & 2) >> 1 ) | ( (i & 1) << 1 );
|
||||
i = i + 1;
|
||||
i = ( (i & 2) >> 1 ) | ( (i & 1) << 1 );
|
||||
switch( GetOrientation() )
|
||||
{
|
||||
case PIN_UP:
|
||||
orient = PIN_LEFT;
|
||||
break;
|
||||
|
||||
case PIN_DOWN:
|
||||
orient = PIN_RIGHT;
|
||||
break;
|
||||
|
||||
case PIN_LEFT:
|
||||
orient = PIN_DOWN;
|
||||
break;
|
||||
|
||||
case PIN_RIGHT:
|
||||
orient = PIN_UP;
|
||||
break;
|
||||
}
|
||||
|
||||
// Set the new orientation
|
||||
SetOrientation( GetOrientationCode( i ) );
|
||||
SetOrientation( orient );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1071,6 +1071,10 @@ void LIB_EDIT_FRAME::OnRotateItem( wxCommandEvent& aEvent )
|
|||
|
||||
m_drawItem->Rotate();
|
||||
OnModify();
|
||||
|
||||
if( !m_drawItem->InEditMode() )
|
||||
m_drawItem->ClearFlags();
|
||||
|
||||
DrawPanel->Refresh();
|
||||
|
||||
if( GetToolId() == ID_NO_TOOL_SELECTED )
|
||||
|
|
Loading…
Reference in New Issue