Index: trunk/src/obj_text.c =================================================================== --- trunk/src/obj_text.c (revision 34006) +++ trunk/src/obj_text.c (revision 34007) @@ -1586,10 +1586,23 @@ } } +rnd_coord_t pcb_text_min_thickness(pcb_layer_t *layer) +{ + unsigned int flg = 0; + + if ((!layer->is_bound) && (layer->meta.real.grp >= 0)) + flg = pcb_layergrp_flags(PCB, layer->meta.real.grp); + + if (flg & PCB_LYT_SILK) + return conf_core.design.min_slk; + else + return conf_core.design.min_wid; + +} + static void pcb_text_draw(pcb_draw_info_t *info, pcb_text_t *text, int allow_term_gfx) { int min_silk_line; - unsigned int flg = 0; const pcb_layer_t *layer = info->layer != NULL ? info->layer : pcb_layer_get_real(text->parent.layer); pcb_obj_noexport(info, text, return); @@ -1617,14 +1630,8 @@ else rnd_render->set_color(pcb_draw_out.fgGC, &layer->meta.real.color); - if ((!layer->is_bound) && (layer->meta.real.grp >= 0)) - flg = pcb_layergrp_flags(PCB, layer->meta.real.grp); + min_silk_line = pcb_text_min_thickness(layer); - if (flg & PCB_LYT_SILK) - min_silk_line = conf_core.design.min_slk; - else - min_silk_line = conf_core.design.min_wid; - pcb_text_draw_(info, text, min_silk_line, allow_term_gfx, PCB_TXT_TINY_CHEAP); } Index: trunk/src/obj_text.h =================================================================== --- trunk/src/obj_text.h (revision 34006) +++ trunk/src/obj_text.h (revision 34007) @@ -122,6 +122,9 @@ Returns false if has a rounding error greater than 0.5 deg */ rnd_bool pcb_text_old_direction(int *dir_out, double rot); +/* Return the minimum width the text object needs to have on a specific layer */ +rnd_coord_t pcb_text_min_thickness(pcb_layer_t *layer); + /* hash and eq */ int pcb_text_eq(const pcb_host_trans_t *tr1, const pcb_text_t *t1, const pcb_host_trans_t *tr2, const pcb_text_t *t2); unsigned int pcb_text_hash(const pcb_host_trans_t *tr, const pcb_text_t *t);