Index: trunk/src/undo_old.c =================================================================== --- trunk/src/undo_old.c (revision 31846) +++ trunk/src/undo_old.c (revision 31847) @@ -1131,6 +1131,12 @@ pcb_poly_clear_from_poly(PCB->Data, Type, Ptr1, Ptr2); } +void pcb_undo_add_obj_to_create_noclear(int Type, void *Ptr1, void *Ptr2, void *Ptr3) +{ + if (!Locked) + GetUndoSlot(PCB_UNDO_CREATE, PCB_OBJECT_ID(Ptr3), Type); +} + /* --------------------------------------------------------------------------- * adds an object to the list of objects with flags changed */ Index: trunk/src/undo_old.h =================================================================== --- trunk/src/undo_old.h (revision 31846) +++ trunk/src/undo_old.h (revision 31847) @@ -44,6 +44,7 @@ void pcb_undo_add_obj_to_rotate90(int, void *, void *, void *, rnd_coord_t, rnd_coord_t, unsigned int); void pcb_undo_add_obj_to_rotate(int Type, void *Ptr1, void *Ptr2, void *Ptr3, rnd_coord_t CenterX, rnd_coord_t CenterY, rnd_angle_t angle); void pcb_undo_add_obj_to_create(int, void *, void *, void *); +void pcb_undo_add_obj_to_create_nocreate(int, void *, void *, void *); void pcb_undo_add_subc_to_otherside(int Type, void *Ptr1, void *Ptr2, void *Ptr3, rnd_coord_t yoff); void pcb_undo_add_obj_to_move_to_layer(int, void *, void *, void *); void pcb_undo_add_obj_to_flag(void *obj); Index: trunk/src_plugins/lib_polyhelp/polyhelp.c =================================================================== --- trunk/src_plugins/lib_polyhelp/polyhelp.c (revision 31846) +++ trunk/src_plugins/lib_polyhelp/polyhelp.c (revision 31847) @@ -95,7 +95,7 @@ n = v->next; l = pcb_line_new(dst, v->point[0], v->point[1], n->point[0], n->point[1], thickness, clearance, flags); if (undoable) - pcb_undo_add_obj_to_create(PCB_OBJ_LINE, dst, l, l); + pcb_undo_add_obj_to_create_noclear(PCB_OBJ_LINE, dst, l, l); cnt++; } @@ -365,7 +365,7 @@ hatch_ctx_t *ctx = (hatch_ctx_t *)ctx_; pcb_line_t *l = pcb_line_new(ctx->dst, x1, y1, x2, y2, ctx->thickness, ctx->clearance, ctx->flags); if (ctx->undoable) - pcb_undo_add_obj_to_create(PCB_OBJ_LINE, ctx->dst, l, l); + pcb_undo_add_obj_to_create_noclear(PCB_OBJ_LINE, ctx->dst, l, l); } void pcb_cpoly_hatch_lines(pcb_layer_t *dst, const pcb_poly_t *src, pcb_cpoly_hatchdir_t dir, rnd_coord_t period, rnd_coord_t thickness, rnd_coord_t clearance, pcb_flag_t flags, rnd_bool undoable)