Index: trunk/src/draw.h =================================================================== --- trunk/src/draw.h (revision 5987) +++ trunk/src/draw.h (revision 5988) @@ -82,4 +82,17 @@ void pcb_draw_layer(pcb_layer_t *, const pcb_box_t *); void pcb_erase_obj(int, void *, void *); +/*#define PCB_BBOX_DEBUG*/ + +#ifdef PCB_BBOX_DEBUG +#define PCB_DRAW_BBOX(obj) \ + do { \ + pcb_gui->set_line_width(Output.fgGC, 0); \ + pcb_gui->draw_rect(Output.fgGC, obj->BoundingBox.X1, obj->BoundingBox.Y1, obj->BoundingBox.X2, obj->BoundingBox.Y2); \ + } while(0) +#else +#define PCB_DRAW_BBOX(obj) #endif + + +#endif Index: trunk/src/obj_arc.c =================================================================== --- trunk/src/obj_arc.c (revision 5987) +++ trunk/src/obj_arc.c (revision 5988) @@ -666,6 +666,8 @@ if (!arc->Thickness) return; + PCB_DRAW_BBOX(arc); + if (conf_core.editor.thin_draw) pcb_gui->set_line_width(Output.fgGC, 0); else Index: trunk/src/obj_line.c =================================================================== --- trunk/src/obj_line.c (revision 5987) +++ trunk/src/obj_line.c (revision 5988) @@ -794,6 +794,7 @@ /*** draw ***/ void _draw_line(pcb_line_t * line) { + PCB_DRAW_BBOX(line); pcb_gui->set_line_cap(Output.fgGC, Trace_Cap); if (conf_core.editor.thin_draw) pcb_gui->set_line_width(Output.fgGC, 0); Index: trunk/src/obj_pad.c =================================================================== --- trunk/src/obj_pad.c (revision 5987) +++ trunk/src/obj_pad.c (revision 5988) @@ -374,6 +374,8 @@ if (clear && !mask && pad->Clearance <= 0) return; + PCB_DRAW_BBOX(pad); + if (conf_core.editor.thin_draw || (clear && conf_core.editor.thin_draw_poly)) pcb_gui->thindraw_pcb_pad(gc, pad, clear, mask); else Index: trunk/src/obj_pinvia.c =================================================================== --- trunk/src/obj_pinvia.c (revision 5987) +++ trunk/src/obj_pinvia.c (revision 5988) @@ -851,6 +851,8 @@ char buff[128]; const char *pn; + PCB_DRAW_BBOX(pv); + if (!pv->Name || !pv->Name[0]) { pn = PCB_EMPTY(pv->Number); }