Index: src/conf_core.h =================================================================== --- src/conf_core.h (revision 16993) +++ src/conf_core.h (revision 16994) @@ -221,6 +221,9 @@ CFT_INTEGER cross_thick; /* cross thickness in pixels - 0 means disable crosses */ CFT_COORD cross_size; /* cross size in word coords - size of one arm of the cross (minus the hole radius) */ } padstack; + struct subc { + CFT_INTEGER dash_freq; /* how dense the dashed outline should be; -1 means do not display the dashed outline; 0 means solid outline; 1..32 means dashed outline */ + } subc; struct messages { CFT_INTEGER char_per_line; /* width of an output line in characters (used by separator drawing in find.c) */ } messages; Index: src/obj_subc.c =================================================================== --- src/obj_subc.c (revision 16993) +++ src/obj_subc.c (revision 16994) @@ -1519,7 +1519,11 @@ pcb_subc_t *subc = (pcb_subc_t *) b; pcb_box_t *bb = &subc->BoundingBox; int selected = PCB_FLAG_TEST(PCB_FLAG_SELECTED, subc); + int freq = conf_core.appearance.subc.dash_freq; + if (freq > 32) + freq = 32; + pcb_gui->set_color(pcb_draw_out.fgGC, conf_core.appearance.color.element); pcb_gui->set_line_cap(pcb_draw_out.fgGC, Trace_Cap); pcb_gui->set_line_width(pcb_draw_out.fgGC, 0); @@ -1528,13 +1532,15 @@ pcb_subc_draw_origin(pcb_draw_out.fgGC, subc, 0, 0); pcb_gui->set_draw_xor(pcb_draw_out.fgGC, 0); - pcb_gui->set_line_width(pcb_draw_out.fgGC, 0); - pcb_gui->set_draw_xor(pcb_draw_out.fgGC, 1); - pcb_draw_dashed_line(pcb_draw_out.fgGC, bb->X1, bb->Y1, bb->X2, bb->Y1, 5); - pcb_draw_dashed_line(pcb_draw_out.fgGC, bb->X1, bb->Y1, bb->X1, bb->Y2, 5); - pcb_draw_dashed_line(pcb_draw_out.fgGC, bb->X2, bb->Y2, bb->X2, bb->Y1, 5); - pcb_draw_dashed_line(pcb_draw_out.fgGC, bb->X2, bb->Y2, bb->X1, bb->Y2, 5); - pcb_gui->set_draw_xor(pcb_draw_out.fgGC, 0); + if (freq >= 0) { + pcb_gui->set_line_width(pcb_draw_out.fgGC, 0); + pcb_gui->set_draw_xor(pcb_draw_out.fgGC, 1); + pcb_draw_dashed_line(pcb_draw_out.fgGC, bb->X1, bb->Y1, bb->X2, bb->Y1, freq); + pcb_draw_dashed_line(pcb_draw_out.fgGC, bb->X1, bb->Y1, bb->X1, bb->Y2, freq); + pcb_draw_dashed_line(pcb_draw_out.fgGC, bb->X2, bb->Y2, bb->X2, bb->Y1, freq); + pcb_draw_dashed_line(pcb_draw_out.fgGC, bb->X2, bb->Y2, bb->X1, bb->Y2, freq); + pcb_gui->set_draw_xor(pcb_draw_out.fgGC, 0); + } if (subc->refdes != NULL) { pcb_coord_t x0, y0, dx, dy; Index: src/pcb-conf.lht =================================================================== --- src/pcb-conf.lht (revision 16993) +++ src/pcb-conf.lht (revision 16994) @@ -215,6 +215,9 @@ cross_thick = 1 cross_size = 0.1 mm } + ha:subc { + dash_freq = 5 + } ha:messages { # char_per_line = 0 }