Index: trunk/src/buffer.c =================================================================== --- trunk/src/buffer.c (revision 18399) +++ trunk/src/buffer.c (revision 18400) @@ -86,13 +86,22 @@ int pcb_set_buffer_bbox(pcb_buffer_t *Buffer) { - pcb_box_t tmp, *box = pcb_data_bbox(&tmp, Buffer->Data, pcb_false); + pcb_box_t tmp, *box; + int res = 0; + + box = pcb_data_bbox(&tmp, Buffer->Data, pcb_false); + if (box) + Buffer->BoundingBox = *box; + else + res = -1; - if (box) { - Buffer->BoundingBox = *box; - return 0; - } - return -1; + box = pcb_data_bbox_naked(&tmp, Buffer->Data, pcb_false); + if (box) + Buffer->bbox_naked = *box; + else + res = -1; + + return res; } static void pcb_buffer_clear_(pcb_board_t *pcb, pcb_buffer_t *Buffer, pcb_bool bind) Index: trunk/src/buffer.h =================================================================== --- trunk/src/buffer.h (revision 18399) +++ trunk/src/buffer.h (revision 18400) @@ -37,6 +37,7 @@ struct pcb_buffer_s { /* information about the paste buffer */ pcb_coord_t X, Y; /* offset */ pcb_box_t BoundingBox; + pcb_box_t bbox_naked; pcb_data_t *Data; /* data; not all members of pcb_board_t */ int from_outside; /* data is coming from outside of the current board (lib, loaded board) */ /* are used */