MacOSX: Drag Modules and Tracks now works correctly

This commit is contained in:
marco. 2012-01-10 22:55:07 +01:00
parent 1c98200721
commit 6b097a57bf
2 changed files with 15 additions and 0 deletions

View File

@ -614,6 +614,12 @@ void TRACK::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int draw_mode, const wxPoint&
if( brd->IsLayerVisible( m_Layer ) == false && !( draw_mode & GR_HIGHLIGHT ) ) if( brd->IsLayerVisible( m_Layer ) == false && !( draw_mode & GR_HIGHLIGHT ) )
return; return;
#ifdef USE_WX_OVERLAY
// If dragged not draw in OnPaint otherwise remains impressed in wxOverlay
if( (m_Flags && IS_DRAGGED) && DC->IsKindOf(wxCLASSINFO(wxPaintDC)))
return;
#endif
if( DisplayOpt.ContrastModeDisplay ) if( DisplayOpt.ContrastModeDisplay )
{ {
if( !IsOnLayer( curr_layer ) ) if( !IsOnLayer( curr_layer ) )

View File

@ -172,7 +172,11 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo
DisplayOpt.DisplayPcbTrackFill = false; DisplayOpt.DisplayPcbTrackFill = false;
#ifndef USE_WX_OVERLAY
aErase = true; aErase = true;
#else
aErase = false;
#endif
/* erase the current moved track segments from screen */ /* erase the current moved track segments from screen */
if( aErase ) if( aErase )
@ -181,6 +185,7 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo
DrawTraces( aPanel, aDC, NewTrack, NbPtNewTrack, draw_mode ); DrawTraces( aPanel, aDC, NewTrack, NbPtNewTrack, draw_mode );
} }
/* set the new track coordinates */ /* set the new track coordinates */
wxPoint Pos = screen->GetCrossHairPosition(); wxPoint Pos = screen->GetCrossHairPosition();
@ -199,8 +204,10 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo
Track->m_End += moveVector; Track->m_End += moveVector;
} }
#ifndef USE_WX_OVERLAY
/* Redraw the current moved track segments */ /* Redraw the current moved track segments */
DrawTraces( aPanel, aDC, NewTrack, NbPtNewTrack, draw_mode ); DrawTraces( aPanel, aDC, NewTrack, NbPtNewTrack, draw_mode );
#endif
for( unsigned ii = 0; ii < g_DragSegmentList.size(); ii++ ) for( unsigned ii = 0; ii < g_DragSegmentList.size(); ii++ )
{ {
@ -318,6 +325,7 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC
/* Undraw the current moved track segments before modification*/ /* Undraw the current moved track segments before modification*/
#ifndef USE_WX_OVERLAY
// if( erase ) // if( erase )
{ {
Track->Draw( aPanel, aDC, draw_mode ); Track->Draw( aPanel, aDC, draw_mode );
@ -328,6 +336,7 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC
if( tSegmentToEnd ) if( tSegmentToEnd )
tSegmentToEnd->Draw( aPanel, aDC, draw_mode ); tSegmentToEnd->Draw( aPanel, aDC, draw_mode );
} }
#endif
/* Compute the new track segment position */ /* Compute the new track segment position */
wxPoint Pos = screen->GetCrossHairPosition(); wxPoint Pos = screen->GetCrossHairPosition();