Commit d24c41ff authored by dickelbeck's avatar dickelbeck

zone_container xor artifact cleanups

parent 2e94a708
...@@ -9,9 +9,10 @@ email address. ...@@ -9,9 +9,10 @@ email address.
2008-May-2 UPDATE Dick Hollenbeck <dick@softplc.com> 2008-May-2 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================ ================================================================================
+pcbnew +pcbnew
Added ZONE_CONTAINER::GetBoundingBox() and used it to clean up * Added ZONE_CONTAINER::GetBoundingBox() and used it to clean up
ZONE_CONTAINER deletion. There is still a problem dragging a zone container ZONE_CONTAINER deletion.
edge that I will not get to. * For end of edge dragging activity: used full DrawPanel->Refresh()
to clean up all XOR artifacts.
2008-May-1 UPDATE Dick Hollenbeck <dick@softplc.com> 2008-May-1 UPDATE Dick Hollenbeck <dick@softplc.com>
......
...@@ -322,15 +322,18 @@ void WinEDA_PcbFrame::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER ...@@ -322,15 +322,18 @@ void WinEDA_PcbFrame::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER
/* Combine zones if possible */ /* Combine zones if possible */
wxBusyCursor dummy; wxBusyCursor dummy;
int layer = zone_container->GetLayer(); // int layer = zone_container->GetLayer();
m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_XOR, layer ); // m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_XOR, layer );
m_Pcb->AreaPolygonModified( zone_container, true, verbose ); m_Pcb->AreaPolygonModified( zone_container, true, verbose );
m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_OR, layer ); // m_Pcb->RedrawAreasOutlines( DrawPanel, DC, GR_OR, layer );
DrawPanel->Refresh();
int ii = m_Pcb->GetAreaIndex( zone_container ); // test if zone_container exists int ii = m_Pcb->GetAreaIndex( zone_container ); // test if zone_container exists
if( ii < 0 ) if( ii < 0 )
zone_container = NULL; // was removed by combining zones zone_container = NULL; // was removed by combining zones
int error_count = m_Pcb->Test_Drc_Areas_Outlines_To_Areas_Outlines( zone_container, true ); int error_count = m_Pcb->Test_Drc_Areas_Outlines_To_Areas_Outlines( zone_container, true );
if( error_count ) if( error_count )
{ {
...@@ -392,7 +395,7 @@ void Abort_Zone_Move_Corner_Or_Outlines( WinEDA_DrawPanel* Panel, wxDC* DC ) ...@@ -392,7 +395,7 @@ void Abort_Zone_Move_Corner_Or_Outlines( WinEDA_DrawPanel* Panel, wxDC* DC )
WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) Panel->m_Parent; WinEDA_PcbFrame* pcbframe = (WinEDA_PcbFrame*) Panel->m_Parent;
ZONE_CONTAINER* zone_container = (ZONE_CONTAINER*) pcbframe->GetCurItem(); ZONE_CONTAINER* zone_container = (ZONE_CONTAINER*) pcbframe->GetCurItem();
zone_container->Draw( Panel, DC, GR_XOR ); // zone_container->Draw( Panel, DC, GR_XOR );
if( zone_container->m_Flags == IS_MOVED ) if( zone_container->m_Flags == IS_MOVED )
{ {
...@@ -418,7 +421,10 @@ void Abort_Zone_Move_Corner_Or_Outlines( WinEDA_DrawPanel* Panel, wxDC* DC ) ...@@ -418,7 +421,10 @@ void Abort_Zone_Move_Corner_Or_Outlines( WinEDA_DrawPanel* Panel, wxDC* DC )
zone_container->m_Poly->MoveCorner( zone_container->m_CornerSelection, pos.x, pos.y ); zone_container->m_Poly->MoveCorner( zone_container->m_CornerSelection, pos.x, pos.y );
} }
} }
zone_container->Draw( Panel, DC, GR_XOR );
// zone_container->Draw( Panel, DC, GR_XOR );
Panel->Refresh();
Panel->ManageCurseur = NULL; Panel->ManageCurseur = NULL;
Panel->ForceCloseManageCurseur = NULL; Panel->ForceCloseManageCurseur = NULL;
......
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