Index: trunk/src/crosshair.c =================================================================== --- trunk/src/crosshair.c (revision 32909) +++ trunk/src/crosshair.c (revision 32910) @@ -210,7 +210,7 @@ PCB_END_LOOP; PCB_TEXT_LOOP(layer); { - pcb_text_draw_xor(text, x, y); + pcb_text_draw_xor(text, x, y, 1); } PCB_END_LOOP; /* the tmp polygon has n+1 points because the first @@ -425,8 +425,8 @@ case PCB_OBJ_TEXT: { + int want_box = 1; pcb_text_t *text = (pcb_text_t *)pcb_crosshair.AttachedObject.Ptr2; - pcb_text_draw_xor(text, dx, dy); if (conf_core.editor.show_drc) { if (xordraw_cache.pa == NULL) xordraw_cache.pa = pcb_poly_construct_text_clearance(text); @@ -440,9 +440,10 @@ pa = pa->f; } while(pa != xordraw_cache.pa); rnd_render->set_color(pcb_crosshair.GC, &conf_core.appearance.color.attached); + want_box = 0; } } - + pcb_text_draw_xor(text, dx, dy, want_box); break; } Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 32909) +++ trunk/src/obj_subc.c (revision 32910) @@ -815,10 +815,10 @@ t.BoundingBox.X2 = PCB_CSWAP_X(text->BoundingBox.X2, w, mirr); t.BoundingBox.Y2 = PCB_CSWAP_Y(text->BoundingBox.Y2, h, mirr); PCB_FLAG_TOGGLE(PCB_FLAG_ONSOLDER, &t); - pcb_text_draw_xor(&t, DX, DY); + pcb_text_draw_xor(&t, DX, DY, 1); } else - pcb_text_draw_xor(text, DX, DY); + pcb_text_draw_xor(text, DX, DY, 1); } } Index: trunk/src/obj_text.c =================================================================== --- trunk/src/obj_text.c (revision 32909) +++ trunk/src/obj_text.c (revision 32910) @@ -1636,11 +1636,11 @@ static pcb_draw_info_t txor_info; static rnd_xform_t txor_xform; -void pcb_text_draw_xor(pcb_text_t *text, rnd_coord_t x, rnd_coord_t y) +void pcb_text_draw_xor(pcb_text_t *text, rnd_coord_t x, rnd_coord_t y, rnd_bool want_box) { txor_info.xform = &txor_xform; DrawTextLowLevel_(&txor_info, text, 0, 1, x, y, PCB_TXT_TINY_CHEAP); - if ((conf_core.appearance.text_host_bbox) && (text->BoundingBox.X1 != text->BoundingBox.X2)) { + if (want_box && (conf_core.appearance.text_host_bbox) && (text->BoundingBox.X1 != text->BoundingBox.X2)) { rnd_render->draw_line(pcb_crosshair.GC, x + text->BoundingBox.X1, y + text->BoundingBox.Y1, x + text->BoundingBox.X1, y + text->BoundingBox.Y2); rnd_render->draw_line(pcb_crosshair.GC, x + text->BoundingBox.X1, y + text->BoundingBox.Y1, x + text->BoundingBox.X2, y + text->BoundingBox.Y1); rnd_render->draw_line(pcb_crosshair.GC, x + text->BoundingBox.X2, y + text->BoundingBox.Y2, x + text->BoundingBox.X1, y + text->BoundingBox.Y2); Index: trunk/src/obj_text_draw.h =================================================================== --- trunk/src/obj_text_draw.h (revision 32909) +++ trunk/src/obj_text_draw.h (revision 32910) @@ -46,7 +46,7 @@ void pcb_text_draw_(pcb_draw_info_t *info, pcb_text_t *Text, rnd_coord_t min_line_width, int allow_term_gfx, pcb_text_tiny_t tiny); void pcb_text_invalidate_erase(pcb_layer_t *Layer, pcb_text_t *Text); void pcb_text_invalidate_draw(pcb_layer_t *Layer, pcb_text_t *Text); -void pcb_text_draw_xor(pcb_text_t *text, rnd_coord_t x, rnd_coord_t y); +void pcb_text_draw_xor(pcb_text_t *text, rnd_coord_t x, rnd_coord_t y, rnd_bool want_box); void pcb_text_name_invalidate_draw(pcb_text_t *txt); void pcb_text_draw_label(pcb_draw_info_t *info, pcb_text_t *text); Index: trunk/src_plugins/tool_std/tool_text.c =================================================================== --- trunk/src_plugins/tool_std/tool_text.c (revision 32909) +++ trunk/src_plugins/tool_std/tool_text.c (revision 32910) @@ -87,7 +87,7 @@ text.thickness = conf_core.design.text_thickness; text.TextString = "A"; text.fid = conf_core.design.text_font_id; - pcb_text_draw_xor(&text,0,0); + pcb_text_draw_xor(&text,0,0,1); }