Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 12957) +++ trunk/src/draw.c (revision 12958) @@ -79,6 +79,7 @@ static void DrawEverything(const pcb_box_t *); static void DrawLayerGroup(int, const pcb_box_t *, int); static void pcb_draw_obj_label(pcb_any_obj_t *obj); +static void pcb_draw_pstk_marks(const pcb_box_t *drawn_area); /* In draw_ly_spec.c: */ static void pcb_draw_paste(int side, const pcb_box_t *drawn_area); @@ -372,7 +373,9 @@ if (PCB->SubcOn) pcb_r_search(PCB->Data->subc_tree, drawn_area, NULL, draw_subc_mark_callback, NULL, NULL); - + + pcb_draw_pstk_marks(drawn_area); + pcb_gui->set_drawing_mode(PCB_HID_COMP_FLUSH, Output.direct, drawn_area); /* Draw rat lines on top */ @@ -432,6 +435,13 @@ pcb_r_search(PCB->Data->padstack_tree, drawn_area, NULL, pcb_pstk_draw_callback, &ctx, NULL); } +static void pcb_draw_pstk_marks(const pcb_box_t *drawn_area) +{ + pcb_pstk_draw_t ctx; + ctx.pcb = PCB; + pcb_r_search(PCB->Data->padstack_tree, drawn_area, NULL, pcb_pstk_draw_mark_callback, &ctx, NULL); +} + static void pcb_draw_pstk_holes(pcb_layergrp_id_t group, const pcb_box_t *drawn_area) { pcb_pstk_draw_t ctx; Index: trunk/src/obj_pstk.c =================================================================== --- trunk/src/obj_pstk.c (revision 12957) +++ trunk/src/obj_pstk.c (revision 12958) @@ -307,8 +307,6 @@ pcb_pstk_draw_t *ctx = cl; pcb_pstk_t *ps = (pcb_pstk_t *)b; pcb_pstk_shape_t *shape; - pcb_coord_t mark; - pcb_pstk_proto_t *proto; pcb_layergrp_t *grp; if (!PCB->SubcPartsOn && pcb_gobj_parent_subc(ps->parent_type, &ps->parent)) @@ -326,6 +324,15 @@ pcb_pstk_draw_shape_solid(Output.fgGC, ps, shape); } + return PCB_R_DIR_FOUND_CONTINUE; +} + +pcb_r_dir_t pcb_pstk_draw_mark_callback(const pcb_box_t *b, void *cl) +{ + pcb_pstk_t *ps = (pcb_pstk_t *)b; + pcb_pstk_proto_t *proto; + pcb_coord_t mark; + mark = PS_CROSS_SIZE/2; proto = pcb_pstk_get_proto(ps); if (proto != NULL) @@ -342,10 +349,9 @@ if ((pcb_draw_doing_pinout) || PCB_FLAG_TEST(PCB_FLAG_TERMNAME, ps)) pcb_draw_delay_label_add((pcb_any_obj_t *)ps); } - - return PCB_R_DIR_FOUND_CONTINUE; } + pcb_r_dir_t pcb_pstk_draw_hole_callback(const pcb_box_t *b, void *cl) { pcb_pstk_draw_t *ctx = cl; Index: trunk/src/obj_pstk_draw.h =================================================================== --- trunk/src/obj_pstk_draw.h (revision 12957) +++ trunk/src/obj_pstk_draw.h (revision 12958) @@ -43,6 +43,7 @@ #endif void pcb_pstk_draw(pcb_pstk_t *ps, pcb_bool draw_hole); +pcb_r_dir_t pcb_pstk_draw_mark_callback(const pcb_box_t *b, void *cl); void pcb_pstk_draw_label(pcb_pstk_t *ps); void pcb_pstk_invalidate_erase(pcb_pstk_t *ps); void pcb_pstk_invalidate_draw(pcb_pstk_t *ps);