Index: trunk/src/board.h =================================================================== --- trunk/src/board.h (revision 13113) +++ trunk/src/board.h (revision 13114) @@ -131,6 +131,9 @@ #define PCB_SWAP_X(x) (PCB_SWAP_SIGN_X(x)) #define PCB_SWAP_Y(y) (PCB->MaxHeight +PCB_SWAP_SIGN_Y(y)) +/* Conditionally allow subc parts to be reached directly in search masks */ +#define PCB_LOOSE_SUBC (PCB->loose_subc ? PCB_TYPE_SUBC_PART : 0) + const char *pcb_board_get_filename(void); const char *pcb_board_get_name(void); Index: trunk/src/select.c =================================================================== --- trunk/src/select.c (revision 13113) +++ trunk/src/select.c (revision 13114) @@ -117,7 +117,7 @@ pcb_bool changed = pcb_true; - type = pcb_search_screen(pcb_crosshair.X, pcb_crosshair.Y, PCB_SELECT_TYPES, &ptr1, &ptr2, &ptr3); + type = pcb_search_screen(pcb_crosshair.X, pcb_crosshair.Y, PCB_SELECT_TYPES | PCB_LOOSE_SUBC, &ptr1, &ptr2, &ptr3); if (type == PCB_TYPE_NONE || PCB_FLAG_TEST(PCB_FLAG_LOCK, (pcb_pin_t *) ptr2)) return (pcb_false); switch (type) { Index: trunk/src/tool.h =================================================================== --- trunk/src/tool.h (revision 13113) +++ trunk/src/tool.h (revision 13114) @@ -102,7 +102,4 @@ /* Get the tool pointer of a tool by id */ #define pcb_tool_get(id) ((const pcb_tool_t *)vtp0_get(&pcb_tools, id, 0)) -/* Conditionally allow subc parts to be reached directly in search masks */ -#define PCB_LOOSE_SUBC (PCB->loose_subc ? PCB_TYPE_SUBC_PART : 0) - #endif