Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 28976) +++ trunk/src/obj_subc.c (revision 28977) @@ -1766,7 +1766,9 @@ #include "conf_core.h" #include "draw.h" -pcb_r_dir_t draw_subc_mark_callback(const pcb_box_t *b, void *cl) + + +pcb_r_dir_t pcb_draw_subc_mark(const pcb_box_t *b, void *cl) { pcb_draw_info_t *info = cl; pcb_subc_t *subc = (pcb_subc_t *) b; @@ -1774,13 +1776,7 @@ int selected; int freq = conf_core.appearance.subc.dash_freq; const pcb_color_t *nnclr; - pcb_extobj_t *extobj = pcb_extobj_get(subc); - if ((extobj != NULL) && (extobj->draw_mark != NULL)) { - extobj->draw_mark(info, subc); - return PCB_R_DIR_FOUND_CONTINUE; - } - selected = PCB_FLAG_TEST(PCB_FLAG_SELECTED, subc); draw_subc_per_layer(); @@ -1803,6 +1799,20 @@ return PCB_R_DIR_FOUND_CONTINUE; } +pcb_r_dir_t draw_subc_mark_callback(const pcb_box_t *b, void *cl) +{ + pcb_draw_info_t *info = cl; + pcb_subc_t *subc = (pcb_subc_t *) b; + pcb_extobj_t *extobj = pcb_extobj_get(subc); + + if ((extobj != NULL) && (extobj->draw_mark != NULL)) { + extobj->draw_mark(info, subc); + return PCB_R_DIR_FOUND_CONTINUE; + } + + return pcb_draw_subc_mark(b, cl); +} + pcb_r_dir_t draw_subc_label_callback(const pcb_box_t *b, void *cl) { pcb_draw_info_t *info = cl; Index: trunk/src/obj_subc.h =================================================================== --- trunk/src/obj_subc.h (revision 28976) +++ trunk/src/obj_subc.h (revision 28977) @@ -111,6 +111,7 @@ pcb_layer_t *pcb_subc_get_layer(pcb_subc_t *sc, pcb_layer_type_t lyt, pcb_layer_combining_t comb, pcb_bool_t alloc, const char *name, pcb_bool req_name_match); #include "rtree.h" +pcb_r_dir_t pcb_draw_subc_mark(const pcb_box_t *b, void *cl); /* low level version, does not do extobj */ pcb_r_dir_t draw_subc_mark_callback(const pcb_box_t *b, void *cl); pcb_r_dir_t draw_subc_label_callback(const pcb_box_t *b, void *cl); void DrawSubc(pcb_subc_t *sc);