Index: trunk/src/crosshair.c =================================================================== --- trunk/src/crosshair.c (revision 32942) +++ trunk/src/crosshair.c (revision 32943) @@ -1028,7 +1028,7 @@ PCB->hidlib.ch_y = pcb_crosshair.Y = snap_data.y; if (newpos) - rnd_event(hidlib, PCB_EVENT_CROSSHAIR_NEW_POS, NULL); + rnd_event(hidlib, PCB_EVENT_CROSSHAIR_NEW_POS, "pcc", &pcb_crosshair, oldx, oldy); if (rnd_conf.editor.mode == pcb_crosshair.tool_arrow) { ans = pcb_search_grid_slop(X, Y, PCB_OBJ_LINE_POINT, &ptr1, &ptr2, &ptr3); Index: trunk/src/event.h =================================================================== --- trunk/src/event.h (revision 32942) +++ trunk/src/event.h (revision 32943) @@ -59,7 +59,7 @@ PCB_EVENT_LAYER_KEY_CHANGE, /* called by core if a pcb-rnd::key::* attribute on a layer changes */ - PCB_EVENT_CROSSHAIR_NEW_POS, /* called when the crosshair is moved to a new position; screen indications may need to be updated */ + PCB_EVENT_CROSSHAIR_NEW_POS, /* called when the crosshair is moved to a new position; screen indications may need to be updated; args: (pcb_crosshair_t *), pcb_coord_t oldx, pcb_coord_t oldy */ PCB_EVENT_last /* not a real event */ }; Index: trunk/src_plugins/ch_onpoint/ch_onpoint.c =================================================================== --- trunk/src_plugins/ch_onpoint/ch_onpoint.c (revision 32942) +++ trunk/src_plugins/ch_onpoint/ch_onpoint.c (revision 32943) @@ -190,8 +190,9 @@ static void pcb_ch_onpoint(rnd_hidlib_t *hidlib, void *user_data, int argc, rnd_event_arg_t argv[]) { + pcb_crosshair_t *ch = argv[1].d.p; if (conf_core.editor.highlight_on_point) - onpoint_work(&pcb_crosshair, pcb_crosshair.X, pcb_crosshair.Y); + onpoint_work(ch, ch->X, ch->Y); } int pplg_check_ver_ch_onpoint(int ver_needed) { return 0; }