Commit cea3f06a authored by CHARRAS's avatar CHARRAS
Browse files

pcbnew: remove bug in block delete zone (crashes pcbnew)

parent 62e68c3a
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -4,6 +4,11 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
Please add newer entries at the top, list the date and your name with
email address.
email address.


2007-Nov-29 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
	Removed a bug (function block() ) which crashes pcbnew when erasing a zone by block delete



2007-Nov-27 UPDATE   Dick Hollenbeck <dick@softplc.com>
2007-Nov-27 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
================================================================================
+1 −1
Original line number Original line Diff line number Diff line
@@ -36,7 +36,7 @@ in kicad-dev:
 lines to edit:
 lines to edit:
 STD_INSTALL = 1
 STD_INSTALL = 1
 which can be (see comments in libs.linux)
 which can be (see comments in libs.linux)
 STD_INSTALL = 1
 STD_INSTALL = 0 (or 2)


 after libs.linux edition:
 after libs.linux edition:
 run make -f makefile.gtk
 run make -f makefile.gtk
+1 −1
Original line number Original line Diff line number Diff line
@@ -5,7 +5,7 @@


COMMON_GLOBL wxString g_BuildVersion
COMMON_GLOBL wxString g_BuildVersion
#ifdef EDA_BASE
#ifdef EDA_BASE
	(wxT("(2007-11-19)"))
	(wxT("(2007-11-29)"))
#endif
#endif
;
;


+5 −5
Original line number Original line Diff line number Diff line
@@ -565,17 +565,17 @@ void WinEDA_BasePcbFrame::Block_Delete( wxDC* DC )
    /* Effacement des Zones */
    /* Effacement des Zones */
    if( Block_Include_Zones )
    if( Block_Include_Zones )
    {
    {
        TRACK* pt_segm;
        SEGZONE* pt_segm, *NextSegZ;


        Affiche_Message( _( "Delete zones" ) );
        Affiche_Message( _( "Delete zones" ) );
        for( pt_segm = m_Pcb->m_Zone; pt_segm != NULL; pt_segm = (TRACK*) NextS )
        for( pt_segm = m_Pcb->m_Zone; pt_segm != NULL; pt_segm = NextSegZ )
        {
        {
            NextS = pt_segm->Next();
            NextSegZ = pt_segm->Next();
            if( IsSegmentInBox( GetScreen()->BlockLocate, pt_segm ) )
            if( IsSegmentInBox( GetScreen()->BlockLocate, pt_segm ) )
            {    
            {    
                /* la piste est ici bonne a etre efface */
                /* The segment zone is in the block: delete it */
                pt_segm->Draw( DrawPanel, DC, GR_XOR );
                pt_segm->Draw( DrawPanel, DC, GR_XOR );
                PtStruct->DeleteStructure();
                pt_segm->DeleteStructure();
            }
            }
        }
        }
    }
    }