Commit d24c41ff authored by dickelbeck's avatar dickelbeck
Browse files

zone_container xor artifact cleanups

parent 2e94a708
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -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>
+11 −5
Original line number Original line Diff line number Diff line
@@ -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 )
    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 )
            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;