Index: trunk/src/event.c =================================================================== --- trunk/src/event.c (revision 38260) +++ trunk/src/event.c (revision 38261) @@ -31,6 +31,7 @@ "pcbev_new_pstk", "pcbev_route_styles_changed", "pcbev_netlist_changed", + "pcbev_netlist_imported", "pcbev_layers_changed", "pcbev_layer_changed_grp", "pcbev_layervis_changed", Index: trunk/src/event.h =================================================================== --- trunk/src/event.h (revision 38260) +++ trunk/src/event.h (revision 38261) @@ -38,6 +38,7 @@ PCB_EVENT_ROUTE_STYLES_CHANGED, /* [d] called after any route style change (used to be the RouteStylesChanged action) */ PCB_EVENT_NETLIST_CHANGED, /* [d] called after any netlist change (used to be the NetlistChanged action) */ + PCB_EVENT_NETLIST_IMPORTED, /* [d] called after a netlist import (forward annotation) */ PCB_EVENT_LAYERS_CHANGED, /* [d] called after layers or layer groups change (used to be the LayersChanged action) */ PCB_EVENT_LAYER_CHANGED_GRP, /* [d] called after a layer changed its group; argument: layer pointer */ PCB_EVENT_LAYERVIS_CHANGED, /* [d] called after the visibility of layers has changed */ Index: trunk/src/object_act.c =================================================================== --- trunk/src/object_act.c (revision 38260) +++ trunk/src/object_act.c (revision 38261) @@ -511,6 +511,7 @@ static void plc_end(placer_t *plc) { + rnd_event(&PCB->hidlib, PCB_EVENT_NETLIST_IMPORTED, NULL); if (plc->rem_method == PLC_LIST) { fgw_arg_t res; fgw_arg_t args[4]; Index: trunk/src/rats_patch.c =================================================================== --- trunk/src/rats_patch.c (revision 38260) +++ trunk/src/rats_patch.c (revision 38261) @@ -1098,7 +1098,7 @@ {"SavePatch", pcb_act_SavePatch, pcb_acth_SavePatch, pcb_acts_SavePatch} }; -static void rats_patch_netlist_chg(rnd_design_t *hidlib, void *user_data, int argc, rnd_event_arg_t argv[]) +static void rats_patch_netlist_import(rnd_design_t *hidlib, void *user_data, int argc, rnd_event_arg_t argv[]) { pcb_rats_patch_cleanup_patches((pcb_board_t *)hidlib); } @@ -1107,7 +1107,7 @@ void pcb_rats_patch_init2(void) { RND_REGISTER_ACTIONS(rats_patch_action_list, NULL); - rnd_event_bind(PCB_EVENT_NETLIST_CHANGED, rats_patch_netlist_chg, NULL, core_ratspatch_cookie); + rnd_event_bind(PCB_EVENT_NETLIST_IMPORTED, rats_patch_netlist_import, NULL, core_ratspatch_cookie); } void pcb_rats_patch_uninit(void) Index: trunk/src_plugins/dialogs/dlg_netlist_patch.c =================================================================== --- trunk/src_plugins/dialogs/dlg_netlist_patch.c (revision 38260) +++ trunk/src_plugins/dialogs/dlg_netlist_patch.c (revision 38261) @@ -177,6 +177,7 @@ static void pcb_dlg_netlist_patch_init(void) { rnd_event_bind(PCB_EVENT_NETLIST_CHANGED, pcb_dlg_netlist_patch_ev, &netlist_patch_ctx, dlg_netlist_patch_cookie); + rnd_event_bind(PCB_EVENT_NETLIST_IMPORTED, pcb_dlg_netlist_patch_ev, &netlist_patch_ctx, dlg_netlist_patch_cookie); } static void pcb_dlg_netlist_patch_uninit(void)