Index: trunk/src/data.c =================================================================== --- trunk/src/data.c (revision 30047) +++ trunk/src/data.c (revision 30048) @@ -458,12 +458,14 @@ void pcb_data_scale(pcb_data_t *data, double sx, double sy, double sth, int recurse) { + int undoable = 0; + if ((sx == 1.0) && (sy == 1.0) && (sth == 1.0)) return; PCB_PADSTACK_LOOP(data); { - pcb_pstk_scale(padstack, sx, sy); + pcb_pstk_scale(padstack, sx, sy, undoable); } PCB_END_LOOP; if (recurse) { Index: trunk/src/obj_pstk.c =================================================================== --- trunk/src/obj_pstk.c (revision 30047) +++ trunk/src/obj_pstk.c (revision 30048) @@ -1245,7 +1245,7 @@ if (undoable) pcb_undo_inc_serial(); } -void pcb_pstk_scale(pcb_pstk_t *ps, double sx, double sy) +void pcb_pstk_scale(pcb_pstk_t *ps, double sx, double sy, int undoable) { pcb_pstk_proto_t *prt; pcb_pstk_tshape_t *tshp; @@ -1262,7 +1262,7 @@ /* after the copy we have the canonical transformed shape only; scale each shape in it */ tshp = &prt->tr.array[0]; for(n = 0; n < tshp->len; n++) - pcb_pstk_shape_scale(&tshp->shape[n], sx, sy); + pcb_pstk_shape_scale(&tshp->shape[n], sx, sy, undoable); if (prt->hdia > 0.0) prt->hdia = pcb_round((double)prt->hdia * ((sx+sy)/2.0)); Index: trunk/src/obj_pstk.h =================================================================== --- trunk/src/obj_pstk.h (revision 30047) +++ trunk/src/obj_pstk.h (revision 30048) @@ -201,7 +201,7 @@ void pcb_pstk_proto_grow(pcb_pstk_proto_t *proto, pcb_bool is_absolute, pcb_coord_t val); void pcb_pstk_shape_grow(pcb_pstk_shape_t *shp, pcb_bool is_absolute, pcb_coord_t val); void pcb_pstk_shape_clr_grow(pcb_pstk_shape_t *shp, pcb_bool is_absolute, pcb_coord_t val, int undoable); -void pcb_pstk_shape_scale(pcb_pstk_shape_t *shp, double sx, double sy); +void pcb_pstk_shape_scale(pcb_pstk_shape_t *shp, double sx, double sy, int undoable); /* Derive (copy and bloat) the shape at dst_idx from src_idx; set the mask and comb for the new shape. If dst_idx is -1, allocate the new shape */ @@ -230,7 +230,7 @@ void pcb_pstk_mirror(pcb_pstk_t *ps, pcb_coord_t y_offs, int swap_side, int disable_xmirror, pcb_bool undoable); /* Create a new proto and scale it for the padstack; center x and y are scaled too */ -void pcb_pstk_scale(pcb_pstk_t *ps, double sx, double sy); +void pcb_pstk_scale(pcb_pstk_t *ps, double sx, double sy, int undoable); /* Rotate in place (op wrapper) */ Index: trunk/src/obj_pstk_proto.c =================================================================== --- trunk/src/obj_pstk_proto.c (revision 30047) +++ trunk/src/obj_pstk_proto.c (revision 30048) @@ -1173,7 +1173,7 @@ } } -void pcb_pstk_shape_scale(pcb_pstk_shape_t *shp, double sx, double sy) +void pcb_pstk_shape_scale(pcb_pstk_shape_t *shp, double sx, double sy, int undoable) { pcb_coord_t cx, cy; int n;