Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 9313) +++ trunk/src/obj_subc.c (revision 9314) @@ -308,9 +308,8 @@ return (sc); } -extern pcb_opfunc_t MoveFunctions, Rotate90Functions; +extern pcb_opfunc_t MoveFunctions, Rotate90Functions, ChgFlagFunctions; - void *MoveSubc(pcb_opctx_t *ctx, pcb_subc_t *sc) { return pcb_subc_op(PCB->Data, sc, &MoveFunctions, ctx); @@ -418,7 +417,20 @@ abort(); } +void pcb_select_subc(pcb_board_t *pcb, pcb_subc_t *sc, pcb_change_flag_t how, int redraw) +{ + pcb_opctx_chgflag_t ctx; + ctx.pcb = pcb; + ctx.how = how; + ctx.flag = PCB_FLAG_SELECTED; + + pcb_subc_op(PCB->Data, sc, &ChgFlagFunctions, &ctx); + if (redraw) + DrawSubc(sc); +} + + #include "conf_core.h" #include "draw.h" pcb_r_dir_t draw_subc_mark_callback(const pcb_box_t *b, void *cl) Index: trunk/src/select.c =================================================================== --- trunk/src/select.c (revision 9313) +++ trunk/src/select.c (revision 9314) @@ -199,6 +199,10 @@ case PCB_TYPE_ELEMENT: pcb_select_element(pcb, (pcb_element_t *) ptr1, PCB_CHGFLG_TOGGLE, 1); break; + + case PCB_TYPE_SUBC: + pcb_select_subc(pcb, (pcb_subc_t *) ptr1, PCB_CHGFLG_TOGGLE, 1); + break; } pcb_draw(); pcb_undo_inc_serial();