MacOSX: Fix in eeschema component move

This commit is contained in:
marco. 2012-01-24 18:46:32 +01:00
parent ebb85aa232
commit a51dab7341
3 changed files with 21 additions and 3 deletions

View File

@ -72,6 +72,19 @@ void SCH_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg )
TraceWorkSheet( DC, GetScreen(), g_DrawDefaultLineThickness ); TraceWorkSheet( DC, GetScreen(), g_DrawDefaultLineThickness );
#ifdef USE_WX_OVERLAY
if( IsShown() )
{
m_overlay.Reset();
wxDCOverlay overlaydc( m_overlay, (wxWindowDC*)DC );
overlaydc.Clear();
/* TODO: Investigate why toolbars are affected - to be searched in wxWidgets */
m_mainToolBar->Refresh();
m_drawToolBar->Refresh();
m_optionsToolBar->Refresh();
}
#endif
if( m_canvas->IsMouseCaptured() ) if( m_canvas->IsMouseCaptured() )
m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); m_canvas->CallMouseCapture( DC, wxDefaultPosition, false );

View File

@ -125,7 +125,7 @@ void LIB_ITEM::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset,
int color = GetDefaultColor(); int color = GetDefaultColor();
m_Fill = NO_FILL; m_Fill = NO_FILL;
#ifndef USE_WX_OVERLAY
// Erase the old items using the previous attributes. // Erase the old items using the previous attributes.
if( m_eraseLastDrawItem ) if( m_eraseLastDrawItem )
{ {
@ -133,7 +133,7 @@ void LIB_ITEM::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset,
drawEditGraphics( aPanel->GetClipBox(), aDC, color ); drawEditGraphics( aPanel->GetClipBox(), aDC, color );
drawGraphic( aPanel, aDC, wxPoint( 0, 0 ), color, g_XorMode, aData, aTransform ); drawGraphic( aPanel, aDC, wxPoint( 0, 0 ), color, g_XorMode, aData, aTransform );
} }
#endif
// Calculate the new attributes at the current cursor position. // Calculate the new attributes at the current cursor position.
calcEdit( aOffset ); calcEdit( aOffset );

View File

@ -598,10 +598,12 @@ static void moveItem( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPositio
wxCHECK_RET( (item != NULL), wxT( "Cannot move invalid schematic item." ) ); wxCHECK_RET( (item != NULL), wxT( "Cannot move invalid schematic item." ) );
#ifndef USE_WX_OVERLAY
// Erase the current item at its current position. // Erase the current item at its current position.
if( aErase ) if( aErase )
item->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode ); item->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
#endif
item->SetPosition( screen->GetCrossHairPosition() ); item->SetPosition( screen->GetCrossHairPosition() );
// Draw the item item at it's new position. // Draw the item item at it's new position.
@ -671,7 +673,10 @@ void SCH_EDIT_FRAME::MoveItem( SCH_ITEM* aItem, wxDC* aDC )
} }
aItem->SetFlags( IS_MOVED ); aItem->SetFlags( IS_MOVED );
#ifdef USE_WX_OVERLAY
this->Refresh();
this->Update();
#endif
m_canvas->CrossHairOff( aDC ); m_canvas->CrossHairOff( aDC );
if( aItem->Type() != SCH_SHEET_PIN_T ) if( aItem->Type() != SCH_SHEET_PIN_T )