Index: trunk/src/data.c =================================================================== --- trunk/src/data.c (revision 11880) +++ trunk/src/data.c (revision 11881) @@ -354,6 +354,16 @@ } } +void pcb_data_binding_update(pcb_board_t *pcb, pcb_data_t *data) +{ + int i; + for(i = 0; i < data->LayerN; i++) { + pcb_layer_t *sourcelayer = &data->Layer[i]; + pcb_layer_t *destlayer = pcb_layer_resolve_binding(pcb, sourcelayer); + sourcelayer->meta.bound.real = destlayer; + } +} + pcb_data_t *pcb_data_new(pcb_board_t *parent) { pcb_data_t *data; Index: trunk/src/data.h =================================================================== --- trunk/src/data.h (revision 11880) +++ trunk/src/data.h (revision 11881) @@ -130,6 +130,9 @@ /* Set up all data layers as bound layers to pcb's Data */ void pcb_data_bind_board_layers(pcb_board_t *pcb, pcb_data_t *data, int share_rtrees); +/* Recalculate the layer bindings updating meta.bound.real to new board layers */ +void pcb_data_binding_update(pcb_board_t *pcb, pcb_data_t *data); + /* Make sure there are no negative coords in data, knowing the bbox of the data */ int pcb_data_normalize_(pcb_data_t *data, pcb_box_t *data_bbox);