diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index c8b7e09c80..8beb2e30c0 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -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 ) ) 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( !IsOnLayer( curr_layer ) ) diff --git a/pcbnew/move_or_drag_track.cpp b/pcbnew/move_or_drag_track.cpp index 969bec096b..d12073be0a 100644 --- a/pcbnew/move_or_drag_track.cpp +++ b/pcbnew/move_or_drag_track.cpp @@ -172,7 +172,11 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo DisplayOpt.DisplayPcbTrackFill = false; +#ifndef USE_WX_OVERLAY aErase = true; +#else + aErase = false; +#endif /* erase the current moved track segments from screen */ 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 ); } + /* set the new track coordinates */ 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; } +#ifndef USE_WX_OVERLAY /* Redraw the current moved track segments */ DrawTraces( aPanel, aDC, NewTrack, NbPtNewTrack, draw_mode ); +#endif 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*/ +#ifndef USE_WX_OVERLAY // if( erase ) { 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 ) tSegmentToEnd->Draw( aPanel, aDC, draw_mode ); } +#endif /* Compute the new track segment position */ wxPoint Pos = screen->GetCrossHairPosition();