Index: trunk/src/obj_common.h =================================================================== --- trunk/src/obj_common.h (revision 32946) +++ trunk/src/obj_common.h (revision 32947) @@ -348,6 +348,21 @@ rnd_render->draw_line(pcb_draw_out.fgGC, cx+radius, cy-radius, cx-radius, cy+radius); \ } while(0) +#define pcb_obj_editpont_setup() \ +do { \ + rnd_render->set_color(pcb_draw_out.fgGC, &conf_core.appearance.color.subc); \ + rnd_hid_set_line_cap(pcb_draw_out.fgGC, rnd_cap_round); \ + rnd_hid_set_line_width(pcb_draw_out.fgGC, -2); \ +} while(0) + +#define pcb_obj_editpont_cross(x, y) \ +do { \ + static const rnd_coord_t radius = RND_MM_TO_COORD(0.2); \ + rnd_render->draw_line(pcb_draw_out.fgGC, (x)-radius, (y), (x)+radius, (y)); \ + rnd_render->draw_line(pcb_draw_out.fgGC, (x), (y)-radius, (x), (y)+radius); \ +} while(0) + + #define pcb_hidden_floater(obj,info) ((info)->xform->hide_floaters && PCB_FLAG_TEST(PCB_FLAG_FLOATER, (obj))) #define pcb_hidden_floater_gui(obj) (conf_core.editor.hide_names && PCB_FLAG_TEST(PCB_FLAG_FLOATER, (obj))) #define pcb_partial_export(obj,info) (((info)->xform != NULL) && (info)->xform->partial_export && (!PCB_FLAG_TEST(PCB_FLAG_EXPORTSEL, (obj)))) Index: trunk/src/obj_line.c =================================================================== --- trunk/src/obj_line.c (revision 32946) +++ trunk/src/obj_line.c (revision 32947) @@ -1368,6 +1368,13 @@ conf_core.appearance.term_label_size, is_line_term_vert(line), rnd_true, (pcb_any_obj_t *)line); if (line->noexport) pcb_obj_noexport_mark(line, (line->Point1.X+line->Point2.X)/2, (line->Point1.Y+line->Point2.Y)/2); + + if (line->ind_editpoint) { + pcb_obj_editpont_setup(); + pcb_obj_editpont_cross(line->Point1.X, line->Point1.Y); + if ((line->Point1.X != line->Point2.X) || (line->Point1.Y != line->Point2.Y)) + pcb_obj_editpont_cross(line->Point2.X, line->Point2.Y); + } } @@ -1374,6 +1381,7 @@ void pcb_line_draw_(pcb_draw_info_t *info, pcb_line_t *line, int allow_term_gfx) { rnd_coord_t thickness = line->Thickness; + int draw_lab; if (delayed_terms_enabled && (line->term != NULL)) { pcb_draw_delay_obj_add((pcb_any_obj_t *)line); @@ -1411,10 +1419,11 @@ } } - if (line->term != NULL) { - if ((pcb_draw_force_termlab) || PCB_FLAG_TEST(PCB_FLAG_TERMNAME, line)) - pcb_draw_delay_label_add((pcb_any_obj_t *)line); - } + draw_lab = (line->term != NULL) && ((pcb_draw_force_termlab) || PCB_FLAG_TEST(PCB_FLAG_TERMNAME, line)); + draw_lab |= line->ind_editpoint; + + if (draw_lab) + pcb_draw_delay_label_add((pcb_any_obj_t *)line); } static void pcb_line_draw(pcb_draw_info_t *info, pcb_line_t *line, int allow_term_gfx)