Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 19197) +++ trunk/src/draw.c (revision 19198) @@ -244,7 +244,7 @@ pcb_gui->set_drawing_mode(PCB_HID_COMP_POSITIVE, pcb_draw_out.direct, drawn_area); have_canvas = 1; } - pcb_draw_layer(ly, drawn_area); + pcb_draw_layer(ly, drawn_area, NULL); } } if (have_canvas) @@ -545,7 +545,7 @@ #include "draw_composite.c" #include "draw_ly_spec.c" -void pcb_draw_layer(pcb_layer_t *Layer, const pcb_box_t * screen) +void pcb_draw_layer(pcb_layer_t *Layer, const pcb_box_t *screen, int *num_found) { pcb_draw_info_t info; pcb_box_t scr2; @@ -575,12 +575,12 @@ delayed_terms_enabled = pcb_true; pcb_hid_set_line_width(pcb_draw_out.fgGC, 1); pcb_hid_set_line_cap(pcb_draw_out.fgGC, pcb_cap_square); - pcb_r_search(Layer->polygon_tree, screen, NULL, pcb_poly_draw_term_callback, &info, NULL); + pcb_r_search(Layer->polygon_tree, screen, NULL, pcb_poly_draw_term_callback, &info, num_found); delayed_terms_enabled = pcb_false; may_have_delayed = 1; } else { - pcb_r_search(Layer->polygon_tree, screen, NULL, pcb_poly_draw_callback, &info, NULL); + pcb_r_search(Layer->polygon_tree, screen, NULL, pcb_poly_draw_callback, &info, num_found); } if (conf_core.editor.check_planes) @@ -589,16 +589,16 @@ /* draw all visible layer objects (with terminal gfx on copper) */ if (lflg & PCB_LYT_COPPER) { delayed_terms_enabled = pcb_true; - pcb_r_search(Layer->line_tree, screen, NULL, pcb_line_draw_term_callback, Layer, NULL); - pcb_r_search(Layer->arc_tree, screen, NULL, pcb_arc_draw_term_callback, Layer, NULL); - pcb_r_search(Layer->text_tree, screen, NULL, pcb_text_draw_term_callback, Layer, NULL); + pcb_r_search(Layer->line_tree, screen, NULL, pcb_line_draw_term_callback, Layer, num_found); + pcb_r_search(Layer->arc_tree, screen, NULL, pcb_arc_draw_term_callback, Layer, num_found); + pcb_r_search(Layer->text_tree, screen, NULL, pcb_text_draw_term_callback, Layer, num_found); delayed_terms_enabled = pcb_false; may_have_delayed = 1; } else { - pcb_r_search(Layer->line_tree, screen, NULL, pcb_line_draw_callback, Layer, NULL); - pcb_r_search(Layer->arc_tree, screen, NULL, pcb_arc_draw_callback, Layer, NULL); - pcb_r_search(Layer->text_tree, screen, NULL, pcb_text_draw_callback, Layer, NULL); + pcb_r_search(Layer->line_tree, screen, NULL, pcb_line_draw_callback, Layer, num_found); + pcb_r_search(Layer->arc_tree, screen, NULL, pcb_arc_draw_callback, Layer, num_found); + pcb_r_search(Layer->text_tree, screen, NULL, pcb_text_draw_callback, Layer, num_found); } /* The implicit outline rectangle (or automatic outline rectanlge). @@ -722,7 +722,7 @@ layernum = layers[i]; Layer = PCB->Data->Layer + layernum; if (!(gflg & PCB_LYT_SILK) && Layer->meta.real.vis) - pcb_draw_layer(Layer, drawn_area); + pcb_draw_layer(Layer, drawn_area, NULL); } if (n_entries > 1) rv = 1; @@ -967,7 +967,7 @@ else if ((e->content.layer_id >= 0) && (e->content.layer_id < pcb_max_layer)) { pcb_gui->set_drawing_mode(PCB_HID_COMP_RESET, 1, &e->view); pcb_gui->set_drawing_mode(PCB_HID_COMP_POSITIVE, 1, &e->view); - pcb_draw_layer(&(PCB->Data->Layer[e->content.layer_id]), &e->view); + pcb_draw_layer(&(PCB->Data->Layer[e->content.layer_id]), &e->view, NULL); pcb_gui->set_drawing_mode(PCB_HID_COMP_FLUSH, 1, &e->view); } else Index: trunk/src/draw.h =================================================================== --- trunk/src/draw.h (revision 19197) +++ trunk/src/draw.h (revision 19198) @@ -90,7 +90,7 @@ void pcb_draw(void); void pcb_redraw(void); void pcb_draw_obj(pcb_any_obj_t *obj); -void pcb_draw_layer(pcb_layer_t *, const pcb_box_t *); +void pcb_draw_layer(pcb_layer_t *ly, const pcb_box_t *screen, int *num_found); /* Same as pcb_draw_layer(), but never draws an implicit outline and ignores objects that are not in the subtree of data - useful for drawing a subtree, Index: trunk/src/draw_composite.c =================================================================== --- trunk/src/draw_composite.c (revision 19197) +++ trunk/src/draw_composite.c (revision 19198) @@ -139,7 +139,7 @@ pcb_draw_out.fgGC = pcb_draw_out.pmGC; if (l->comb & PCB_LYC_AUTO) draw_auto(ctx, auto_data); - pcb_draw_layer(l, ctx->screen); + pcb_draw_layer(l, ctx->screen, NULL); pcb_draw_out.fgGC = old_fg; } } Index: trunk/src/draw_ly_spec.c =================================================================== --- trunk/src/draw_ly_spec.c (revision 19197) +++ trunk/src/draw_ly_spec.c (revision 19198) @@ -157,7 +157,7 @@ /* fallback: implicit layer -> original code: draw auto+manual */ pcb_gui->set_drawing_mode(PCB_HID_COMP_RESET, pcb_draw_out.direct, cctx.screen); pcb_gui->set_drawing_mode(PCB_HID_COMP_POSITIVE, pcb_draw_out.direct, cctx.screen); - pcb_draw_layer(LAYER_PTR(lid), cctx.screen); + pcb_draw_layer(LAYER_PTR(lid), cctx.screen, NULL); pcb_draw_silk_auto(&cctx, &lyt_side); pcb_gui->set_drawing_mode(PCB_HID_COMP_FLUSH, pcb_draw_out.direct, cctx.screen); }