Index: trunk/src_plugins/hid_lesstif/main.c =================================================================== --- trunk/src_plugins/hid_lesstif/main.c (revision 16969) +++ trunk/src_plugins/hid_lesstif/main.c (revision 16970) @@ -1679,6 +1679,9 @@ Widget menu; Widget work_area_frame; + /* this only registers in core, safe to call before anything else */ + lesstif_init_menu(); + lesstif_begin(); pcb_hid_cfg_keys_init(&lesstif_keymap); @@ -1829,7 +1832,7 @@ lesstif_menubar = menu; pcb_event(PCB_EVENT_GUI_INIT, NULL); - lesstif_init_menu(); + lesstif_hid_inited = 1; XtAppMainLoop(app_context); @@ -3926,7 +3929,8 @@ pcb_event_bind(PCB_EVENT_BUSY, LesstifBusy, NULL, lesstif_cookie); pcb_hid_register_hid(&lesstif_hid); - lesstif_conf_id = conf_hid_reg(lesstif_cookie, &ccb); + if (lesstif_conf_id < 0) + lesstif_conf_id = conf_hid_reg(lesstif_cookie, &ccb); lesstif_conf_regs(lesstif_cookie); return 0; Index: trunk/src_plugins/hid_lesstif/menu.c =================================================================== --- trunk/src_plugins/hid_lesstif/menu.c (revision 16969) +++ trunk/src_plugins/hid_lesstif/menu.c (revision 16970) @@ -31,7 +31,7 @@ Widget lesstif_menubar; pcb_hid_cfg_t *lesstif_cfg; -conf_hid_id_t lesstif_menuconf_id; +conf_hid_id_t lesstif_menuconf_id = -1; #ifndef R_OK /* Common value for systems that don't define it. */ @@ -622,7 +622,8 @@ extern const char *lesstif_cookie; void lesstif_init_menu(void) { - lesstif_menuconf_id = conf_hid_reg(lesstif_cookie, NULL); + if (lesstif_menuconf_id < 0) + lesstif_menuconf_id = conf_hid_reg(lesstif_cookie, NULL); } void lesstif_uninit_menu(void) @@ -629,4 +630,5 @@ { conf_hid_unreg(lesstif_cookie); XtDestroyWidget(lesstif_menubar); + lesstif_menuconf_id = -1; }