Index: trunk/src_plugins/lib_hid_pcbui/lib_hid_pcbui.c =================================================================== --- trunk/src_plugins/lib_hid_pcbui/lib_hid_pcbui.c (revision 32240) +++ trunk/src_plugins/lib_hid_pcbui/lib_hid_pcbui.c (revision 32241) @@ -151,8 +151,8 @@ rnd_event_bind(RND_EVENT_BOARD_CHANGED, pcb_title_board_changed_ev, NULL, title_cookie); rnd_event_bind(RND_EVENT_BOARD_META_CHANGED, pcb_title_meta_changed_ev, NULL, title_cookie); rnd_event_bind(RND_EVENT_GUI_BATCH_TIMER, pcb_layer_menu_batch_timer_ev, NULL, layer_cookie); + rnd_event_bind(RND_EVENT_GUI_BATCH_TIMER, pcb_rst_menu_batch_timer_ev, NULL, rst_cookie); - install_events(rst_cookie, rpaths, rcb, pcb_rst_update_conf); install_events(status_cookie, stpaths, stcb, pcb_status_st_update_conf); install_events(status_rd_cookie, rdpaths, rdcb, pcb_status_rd_update_conf); Index: trunk/src_plugins/lib_hid_pcbui/routest.c =================================================================== --- trunk/src_plugins/lib_hid_pcbui/routest.c (revision 32240) +++ trunk/src_plugins/lib_hid_pcbui/routest.c (revision 32241) @@ -104,13 +104,27 @@ rstdlg_pcb2dlg(target); } +static int need_rst_menu = 0; + +void pcb_rst_menu_batch_timer_ev(rnd_hidlib_t *hidlib, void *user_data, int argc, rnd_event_arg_t argv[]) +{ + if (need_rst_menu) { +/* rnd_trace("layer key update timer!\n");*/ + rst_install_menu(); + need_rst_menu = 0; + } +} + + static int rst_lock = 0; -static void rst_update() +static void rst_update(rnd_hidlib_t *hidlib) { if (rst_lock) return; rst_lock++; - rst_install_menu(); + need_rst_menu = 1; + rnd_hid_gui_batch_timer(hidlib); + if (rst.sub_inited) { int n, target; target = pcb_route_style_lookup(&PCB->RouteStyle, conf_core.design.line_thickness, conf_core.design.via_thickness, conf_core.design.via_drilling_hole, conf_core.design.clearance, NULL); @@ -215,7 +229,7 @@ void pcb_rst_update_ev(rnd_hidlib_t *hidlib, void *user_data, int argc, rnd_event_arg_t argv[]) { - rst_update(); + rst_update(hidlib); } void pcb_rst_gui_init_ev(rnd_hidlib_t *hidlib, void *user_data, int argc, rnd_event_arg_t argv[]) @@ -225,7 +239,7 @@ if (rnd_hid_dock_enter(&rst.sub, RND_HID_DOCK_LEFT, "Route styles") == 0) rst.sub_inited = 1; } - rst_update(); + rst_update(hidlib); } void pcb_rst_update_conf(rnd_conf_native_t *cfg, int arr_idx) Index: trunk/src_plugins/lib_hid_pcbui/routest.h =================================================================== --- trunk/src_plugins/lib_hid_pcbui/routest.h (revision 32240) +++ trunk/src_plugins/lib_hid_pcbui/routest.h (revision 32241) @@ -5,6 +5,7 @@ void pcb_rst_update_ev(rnd_hidlib_t *hidlib, void *user_data, int argc, rnd_event_arg_t argv[]); void pcb_rst_gui_init_ev(rnd_hidlib_t *hidlib, void *user_data, int argc, rnd_event_arg_t argv[]); void pcb_rst_update_conf(rnd_conf_native_t *cfg, int arr_idx); +void pcb_rst_menu_batch_timer_ev(rnd_hidlib_t *hidlib, void *user_data, int argc, rnd_event_arg_t argv[]); extern const char pcb_acts_AdjustStyle[];