Index: trunk/src/crosshair.c =================================================================== --- trunk/src/crosshair.c (revision 9117) +++ trunk/src/crosshair.c (revision 9118) @@ -328,8 +328,7 @@ PCB_END_LOOP; PCB_TEXT_LOOP(layer); { - pcb_box_t *box = &text->BoundingBox; - pcb_gui->draw_rect(pcb_crosshair.GC, x + box->X1, y + box->Y1, x + box->X2, y + box->Y2); + XORDrawText(text, x, y); } PCB_END_LOOP; /* the tmp polygon has n+1 points because the first Index: trunk/src/obj_text.c =================================================================== --- trunk/src/obj_text.c (revision 9117) +++ trunk/src/obj_text.c (revision 9118) @@ -702,6 +702,12 @@ pcb_draw_invalidate(Text); } +void XORDrawText(pcb_text_t *text, pcb_coord_t x, pcb_coord_t y) +{ + pcb_box_t *box = &text->BoundingBox; + pcb_gui->draw_rect(pcb_crosshair.GC, x + box->X1, y + box->Y1, x + box->X2, y + box->Y2); +} + /*** init ***/ static const char *text_cookie = "obj_text"; Index: trunk/src/obj_text_draw.h =================================================================== --- trunk/src/obj_text_draw.h (revision 9117) +++ trunk/src/obj_text_draw.h (revision 9118) @@ -35,3 +35,5 @@ void DrawTextLowLevel(pcb_text_t *Text, pcb_coord_t min_line_width); void EraseText(pcb_layer_t *Layer, pcb_text_t *Text); void DrawText(pcb_layer_t *Layer, pcb_text_t *Text); +void XORDrawText(pcb_text_t *text, pcb_coord_t x, pcb_coord_t y); +