Commit 6b097a57 authored by marco.'s avatar marco.

MacOSX: Drag Modules and Tracks now works correctly

parent 1c982007
...@@ -614,6 +614,12 @@ void TRACK::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int draw_mode, const wxPoint& ...@@ -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 ) )
......
...@@ -172,7 +172,11 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment