Index: trunk/doc/conf/tree/editor.html =================================================================== --- trunk/doc/conf/tree/editor.html (revision 8605) +++ trunk/doc/conf/tree/editor.html (revision 8606) @@ -37,7 +37,6 @@ thin_draw_poly boolean 0 if set, polygons on the screen are drawn as outlines. local_ref boolean 0 use local reference for moves, by setting the mark at the beginning of each move. check_planes boolean 0 when set, only polygons and their clearances are drawn, to see if polygons have isolated regions. - show_paste boolean 0 show the solder paste layer hide_names boolean 0 when set, element names are not drawn. description boolean 0 display element description as element name, instead of value name_on_pcb boolean 0 display Reference Designator as element name, instead of value Index: trunk/src/conf_core.h =================================================================== --- trunk/src/conf_core.h (revision 8605) +++ trunk/src/conf_core.h (revision 8606) @@ -50,7 +50,6 @@ CFT_BOOLEAN thin_draw_poly; /* if set, polygons on the screen are drawn as outlines. */ CFT_BOOLEAN local_ref; /* use local reference for moves, by setting the mark at the beginning of each move. */ CFT_BOOLEAN check_planes; /* when set, only polygons and their clearances are drawn, to see if polygons have isolated regions. */ - CFT_BOOLEAN show_paste; /* show the solder paste layer */ CFT_BOOLEAN hide_names; /* when set, element names are not drawn. */ CFT_BOOLEAN description; /* display element description as element name, instead of value */ CFT_BOOLEAN name_on_pcb; /* display Reference Designator as element name, instead of value */ Index: trunk/src/gui_act.c =================================================================== --- trunk/src/gui_act.c (revision 8605) +++ trunk/src/gui_act.c (revision 8606) @@ -58,8 +58,8 @@ static const char pcb_acts_Display[] = "Display(NameOnPCB|Description|Value|Grid|Redraw|Pinout|PinOrPadName)\n" "Display(CycleClip|CycleCrosshair|ToggleAllDirections|ToggleStartDirection)\n" - "Display(ToggleGrid|ToggleRubberBandMode|ToggleUniqueNames|ToggleMask)\n" - "Display(TogglePaste|ToggleName|ToggleClearLine|ToggleFullPoly|ToggleSnapPin)\n" + "Display(ToggleGrid|ToggleRubberBandMode|ToggleUniqueNames)\n" + "Display(ToggleName|ToggleClearLine|ToggleFullPoly|ToggleSnapPin)\n" "Display(ToggleSnapOffGridLine|ToggleHighlightOnPoint|ToggleCheckPlanes)\n" "Display(ToggleThindraw|ToggleThindrawPoly|ToggleOrthoMove|ToggleLocalRef)\n" "Display(ToggleLiveRoute|ToggleShowDRC|ToggleAutoDRC|LockNames|OnlyNames)"; @@ -161,12 +161,6 @@ work on objects under the mouse. You can still select other objects with a lasso (left mouse drag) and perform actions on the selection. -@item ToggleMask -Turns the solder mask on or off. - -@item TogglePaste -Turns the solder paste on or off. - @item ToggleClearLine When set, the clear-line flag causes new lines and arcs to have their ``clear polygons'' flag set, so they won't be electrically connected @@ -408,11 +402,6 @@ pcb_redraw(); break; - case F_TogglePaste: - conf_toggle_editor(show_paste); - pcb_redraw(); - break; - case F_ToggleClearLine: conf_toggle_editor(clear_line); break; Index: trunk/src/layer_grp.c =================================================================== --- trunk/src/layer_grp.c (revision 8605) +++ trunk/src/layer_grp.c (revision 8606) @@ -675,3 +675,16 @@ return 0; } + +int pcb_paste_on(pcb_board_t *pcb) +{ + static pcb_layer_id_t tp = -1, bp = -1; + pcb_layergrp_get_cached(pcb, &tp, PCB_LYT_TOP, PCB_LYT_PASTE); + if ((tp >= 0) && (pcb->LayerGroups.grp[tp].vis)) + return 1; + pcb_layergrp_get_cached(pcb, &bp, PCB_LYT_BOTTOM, PCB_LYT_PASTE); + if ((bp >= 0) && (pcb->LayerGroups.grp[bp].vis)) + return 1; + return 0; +} + Index: trunk/src/layer_grp.h =================================================================== --- trunk/src/layer_grp.h (revision 8605) +++ trunk/src/layer_grp.h (revision 8606) @@ -155,7 +155,8 @@ pcb_layergrp_id_t pcb_layergrp_get_bottom_silk(); pcb_layergrp_id_t pcb_layergrp_get_top_silk(); -/* return whether any silk or mask layer group is visible */ +/* return whether any silk or mask or paste layer group is visible */ int pcb_silk_on(pcb_board_t *pcb); int pcb_mask_on(pcb_board_t *pcb); +int pcb_paste_on(pcb_board_t *pcb); #endif Index: trunk/src/layer_vis.c =================================================================== --- trunk/src/layer_vis.c (revision 8605) +++ trunk/src/layer_vis.c (revision 8606) @@ -78,7 +78,6 @@ */ int pcb_layervis_change_group_vis(pcb_layer_id_t Layer, pcb_bool On, pcb_bool ChangeStackOrder) { - unsigned long flg; pcb_layergrp_id_t group; int i, changed = 1; /* at least the current layer changes */ @@ -91,18 +90,9 @@ goto done; } - /* Warning: these special case values must agree with what gui-top-window.c - | thinks the are. - */ - if (conf_core.rc.verbose) printf("pcb_layervis_change_group_vis(Layer=%d, On=%d, ChangeStackOrder=%d)\n", Layer, On, ChangeStackOrder); - /* special case: some layer groups are controlled by a config setting */ - flg = pcb_layer_flags(PCB, Layer); - if (flg & PCB_LYT_PASTE) - conf_set_editor(show_paste, On); - /* decrement 'i' to keep stack in order of layergroup */ if ((group = pcb_layer_get_group(PCB, Layer)) >= 0) { for (i = PCB->LayerGroups.grp[group].len; i;) { Index: trunk/src_plugins/hid_gtk2_gdk/gtkhid-gdk.c =================================================================== --- trunk/src_plugins/hid_gtk2_gdk/gtkhid-gdk.c (revision 8605) +++ trunk/src_plugins/hid_gtk2_gdk/gtkhid-gdk.c (revision 8606) @@ -111,7 +111,7 @@ return 0; case PCB_LYT_PASTE: /* Never draw the paste layer */ if (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags)) - return conf_core.editor.show_paste; + return pcb_paste_on(PCB); } if (idx >= 0 && idx < pcb_max_layer && ((flags & PCB_LYT_ANYTHING) != PCB_LYT_SILK)) Index: trunk/src_plugins/hid_gtk2_gl/gtkhid-gl.c =================================================================== --- trunk/src_plugins/hid_gtk2_gl/gtkhid-gl.c (revision 8605) +++ trunk/src_plugins/hid_gtk2_gl/gtkhid-gl.c (revision 8606) @@ -169,7 +169,7 @@ return 0; case PCB_LYT_PASTE: if (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags)) - return conf_core.editor.show_paste; + return pcb_paste_on(PCB); return 0; } Index: trunk/src_plugins/hid_lesstif/main.c =================================================================== --- trunk/src_plugins/hid_lesstif/main.c (revision 8605) +++ trunk/src_plugins/hid_lesstif/main.c (revision 8606) @@ -2762,7 +2762,7 @@ return 0; case PCB_LYT_PASTE: if (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags) && !pinout) - return conf_core.editor.show_paste; + return pcb_paste_on(PCB); } /* normal layers */ Index: trunk/src_plugins/hid_lesstif/menu.c =================================================================== --- trunk/src_plugins/hid_lesstif/menu.c (revision 8605) +++ trunk/src_plugins/hid_lesstif/menu.c (revision 8606) @@ -143,7 +143,7 @@ set = pcb_mask_on(PCB); break; case LB_PASTE: - set = conf_core.editor.show_paste; + set = pcb_paste_on(PCB); break; default: /* layers */ set = PCB->Data->Layer[i].On; @@ -252,8 +252,9 @@ set = pcb_mask_on(PCB); break; case LB_PASTE: - conf_toggle_editor(show_paste); - set = conf_core.editor.show_paste; +#warning layersel TODO +/* conf_toggle_editor(show_paste);*/ + set = pcb_paste_on(PCB); break; default: /* layers */ set = PCB->Data->Layer[layer].On = !PCB->Data->Layer[layer].On; @@ -441,8 +442,10 @@ #warning layersel TODO /* note_widget_flag(btn, XmNset, "editor/show_mask");*/ } - else if (i == LB_PASTE) - note_widget_flag(btn, XmNset, "editor/show_paste"); + else if (i == LB_PASTE) { +#warning layersel TODO +/* note_widget_flag(btn, XmNset, "editor/show_paste");*/ + } } lb->is_pick = 0; LesstifLayersChanged(0, 0, 0);