diff --git a/pcbnew/tracepcb.cpp b/pcbnew/tracepcb.cpp index 0d000d3662..e1230718d9 100644 --- a/pcbnew/tracepcb.cpp +++ b/pcbnew/tracepcb.cpp @@ -180,7 +180,10 @@ void WinEDA_PcbFrame::Trace_Pcb( wxDC* DC, int mode ) for( int ii = 0; ii < m_Pcb->GetAreaCount(); ii++ ) { ZONE_CONTAINER* edge_zone = m_Pcb->GetArea(ii); - edge_zone->Draw( DrawPanel, DC, wxPoint(0,0), mode); + // Areas must be drawn here only if not moved or dragged, + // because these areas are drawn by ManageCursor() in a specific manner + if ( (edge_zone->m_Flags & (IN_EDIT | IS_DRAGGED | IS_MOVED)) == 0 ) + edge_zone->Draw( DrawPanel, DC, wxPoint(0,0), mode); } DrawGeneralRatsnest( DC ); diff --git a/pcbnew/zones_by_polygon.cpp b/pcbnew/zones_by_polygon.cpp index 5cbee326f7..e714580d61 100644 --- a/pcbnew/zones_by_polygon.cpp +++ b/pcbnew/zones_by_polygon.cpp @@ -33,7 +33,7 @@ using namespace std; #include "protos.h" -bool verbose = false; // false if zone outline diags mst not be shown +bool verbose = false; // false if zone outline diags must not be shown // Outline creation: static void Abort_Zone_Create_Outline( WinEDA_DrawPanel* Panel, wxDC* DC ); diff --git a/pcbnew/zones_test_and_combine_areas.cpp b/pcbnew/zones_test_and_combine_areas.cpp index 5a8c4ce483..7fec10bfc8 100644 --- a/pcbnew/zones_test_and_combine_areas.cpp +++ b/pcbnew/zones_test_and_combine_areas.cpp @@ -738,8 +738,8 @@ int BOARD::CombineAreas( ZONE_CONTAINER* area_ref, ZONE_CONTAINER* area_to_combi // external contour, replace this poly for( int i = 0; icontour[ic].num_vertices; i++ ) { - int x = ( (union_gpc->contour)[ic].vertex )[i].x; - int y = ( (union_gpc->contour)[ic].vertex )[i].y; + int x = (int) ( (union_gpc->contour)[ic].vertex )[i].x; + int y = (int) ( (union_gpc->contour)[ic].vertex )[i].y; if( i==0 ) { area_ref->m_Poly->Start( area_ref->GetLayer( @@ -761,8 +761,8 @@ int BOARD::CombineAreas( ZONE_CONTAINER* area_ref, ZONE_CONTAINER* area_to_combi // hole for( int i = 0; icontour[ic].num_vertices; i++ ) { - int x = ( (union_gpc->contour)[ic].vertex )[i].x; - int y = ( (union_gpc->contour)[ic].vertex )[i].y; + int x = (int) ( (union_gpc->contour)[ic].vertex )[i].x; + int y = (int) ( (union_gpc->contour)[ic].vertex )[i].y; area_ref->m_Poly->AppendCorner( x, y ); }