Index: file_act.c =================================================================== --- file_act.c (revision 37078) +++ file_act.c (revision 37079) @@ -160,9 +160,6 @@ pcb_save_in_tmp(); pcb_crosshair_move_absolute(pcb, RND_COORD_MAX, RND_COORD_MAX); /* make sure the crosshair is not above any object so ch* plugins release their highlights */ - if (rnd_gui->set_design != NULL) - rnd_gui->set_design(rnd_gui, NULL); - pcb_draw_inhibit_inc(); pcb_board_remove(pcb); #undef PCB @@ -169,9 +166,6 @@ PCB = pcb = pcb_board_new(1); #define PCB do_not_use pcb_board_new_postproc(pcb, 1); - if (rnd_gui->set_design != NULL) - rnd_gui->set_design(rnd_gui, &pcb->hidlib); - pcb_draw_inhibit_dec(); pcb_set_design_dir(NULL); rnd_conf_set(RND_CFR_DESIGN, "design/text_font_id", 0, "0", RND_POL_OVERWRITE); /* we have only one font now, make sure it is selected */ @@ -180,6 +174,9 @@ free(pcb->hidlib.name); pcb->hidlib.name = name; + rnd_single_switch_to(&pcb->hidlib); + pcb_draw_inhibit_dec(); + pcb_layervis_reset_stack(&pcb->hidlib); pcb_center_display(pcb, (pcb->hidlib.dwg.X1+pcb->hidlib.dwg.X2) / 2, (pcb->hidlib.dwg.Y1+pcb->hidlib.dwg.Y2) / 2); pcb_board_replaced();