Index: trunk/src/gui_act.c =================================================================== --- trunk/src/gui_act.c (revision 2603) +++ trunk/src/gui_act.c (revision 2604) @@ -1050,7 +1050,6 @@ sizes (thickness, clearance, drill, etc) according to that item. %end-doc */ - static void set_same_(Coord Thick, Coord Diameter, Coord Hole, Coord Clearance, char *Name) { int known; @@ -1057,10 +1056,10 @@ known = pcb_route_style_lookup(&PCB->RouteStyle, Thick, Diameter, Hole, Clearance, Name); if (known < 0) { /* unkown style, set properties */ - if (Thick != 0) conf_set_design("design/line_thickness", "%$mS", Thick); - if (Clearance != 0) conf_set_design("design/clearance", "%$mS", Clearance); - if (Diameter != 0) conf_set_design("design/via_thickness", "%$mS", Diameter); - if (Hole != 0) conf_set_design("design/via_drilling_hole", "%$mS", Hole); + if (Thick != 0) { pcb_custom_route_style.Thick = Thick; conf_set_design("design/line_thickness", "%$mS", Thick); } + if (Clearance != 0) { pcb_custom_route_style.Clearance = Clearance; conf_set_design("design/clearance", "%$mS", Clearance); } + if (Diameter != 0) { pcb_custom_route_style.Diameter = Diameter; conf_set_design("design/via_thickness", "%$mS", Diameter); } + if (Hole != 0) { pcb_custom_route_style.Hole = Hole; conf_set_design("design/via_drilling_hole", "%$mS", Hole); } } else pcb_use_route_style_idx(&PCB->RouteStyle, known); Index: trunk/src/route_style.c =================================================================== --- trunk/src/route_style.c (revision 2603) +++ trunk/src/route_style.c (revision 2604) @@ -33,6 +33,8 @@ #include "error.h" #include "conf.h" +RouteStyleType pcb_custom_route_style; + /*! \brief Serializes the route style list * \par Function Description * Right now n_styles should always be set to NUM_STYLES, Index: trunk/src/route_style.h =================================================================== --- trunk/src/route_style.h (revision 2603) +++ trunk/src/route_style.h (revision 2604) @@ -53,3 +53,5 @@ of the first mathcing style. All non-0 parameters need to match to accept a style. Return -1 on no match. */ int pcb_route_style_lookup(vtroutestyle_t *styles, Coord Thick, Coord Diameter, Coord Hole, Coord Clearance, char *Name); + +extern RouteStyleType pcb_custom_route_style; Index: trunk/src_plugins/hid_gtk/ghid-route-style-selector.c =================================================================== --- trunk/src_plugins/hid_gtk/ghid-route-style-selector.c (revision 2603) +++ trunk/src_plugins/hid_gtk/ghid-route-style-selector.c (revision 2604) @@ -83,7 +83,6 @@ rss->active_style = g_object_get_data(G_OBJECT(action), "route-style"); if (gtk_toggle_action_get_active(action)) g_signal_emit(rss, ghid_route_style_selector_signals[SELECT_STYLE_SIGNAL], 0, rss->active_style->rst); - gtk_widget_set_sensitive(rss->edit_button, TRUE); } /* EDIT DIALOG */ @@ -414,10 +413,9 @@ void ghid_route_style_selector_add_route_style(GHidRouteStyleSelector * rss, RouteStyleType * data) { if (!rss->hidden_button) { - static RouteStyleType hidden; - memset(&hidden, 0, sizeof(hidden)); - strcpy(hidden.name, ""); - ghid_route_style_selector_real_add_route_style(rss, &hidden, 1); + memset(&pcb_custom_route_style, 0, sizeof(pcb_custom_route_style)); + strcpy(pcb_custom_route_style.name, ""); + ghid_route_style_selector_real_add_route_style(rss, &pcb_custom_route_style, 1); rss->hidden_button = 1; } ghid_route_style_selector_real_add_route_style(rss, data, 0); @@ -529,9 +527,6 @@ /* none of the styles matched: update the label... */ ghid_set_status_line_label(); - /* ... disable the button ...*/ - gtk_widget_set_sensitive(rss->edit_button, FALSE); - /* ... and select the hidden custom button */ if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(rss->model), &iter)) return; @@ -555,7 +550,6 @@ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(style->action), TRUE); g_signal_handler_unblock(G_OBJECT(style->action), style->sig_id); rss->active_style = style; - gtk_widget_set_sensitive(rss->edit_button, TRUE); break; } n++;