Index: trunk/src_plugins/hid_gtk2_gdk/gtkhid-gdk.c =================================================================== --- trunk/src_plugins/hid_gtk2_gdk/gtkhid-gdk.c (revision 8606) +++ trunk/src_plugins/hid_gtk2_gdk/gtkhid-gdk.c (revision 8607) @@ -103,15 +103,11 @@ idx = PCB->LayerGroups.grp[group].lid[idx]; } - /* non-virtual layers with special visibility */ + /* non-virtual layers with group visibility */ switch (flags & PCB_LYT_ANYTHING) { case PCB_LYT_MASK: - if (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags) /*&& !pinout */ ) - return pcb_mask_on(PCB); - return 0; - case PCB_LYT_PASTE: /* Never draw the paste layer */ - if (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags)) - return pcb_paste_on(PCB); + case PCB_LYT_PASTE: + return (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags) && PCB->LayerGroups.grp[group].vis /*&& !pinout */ ); } 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 8606) +++ trunk/src_plugins/hid_gtk2_gl/gtkhid-gl.c (revision 8607) @@ -157,20 +157,11 @@ priv->trans_lines = pcb_true; - /* non-virtual layers with special visibility */ + /* non-virtual layers with group visibility */ switch (flags & PCB_LYT_ANYTHING) { case PCB_LYT_MASK: - if (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags)) - return pcb_mask_on(PCB); - return 0; - case PCB_LYT_SILK: - if (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags)) - return pcb_silk_on(PCB); - return 0; case PCB_LYT_PASTE: - if (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags)) - return pcb_paste_on(PCB); - return 0; + return (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags) && PCB->LayerGroups.grp[group].vis /*&& !pinout */ ); } /* normal layers */ Index: trunk/src_plugins/hid_gtk3_cairo/gtkhid-cairo.c =================================================================== --- trunk/src_plugins/hid_gtk3_cairo/gtkhid-cairo.c (revision 8606) +++ trunk/src_plugins/hid_gtk3_cairo/gtkhid-cairo.c (revision 8607) @@ -141,14 +141,11 @@ idx = PCB->LayerGroups.grp[group].lid[idx]; } - /* non-virtual layers with special visibility */ + /* non-virtual layers with group visibility */ switch (flags & PCB_LYT_ANYTHING) { - case PCB_LYT_MASK: - if (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags) /*&& !pinout */ ) - return pcb_mask_on(PCB); - return 0; - case PCB_LYT_PASTE: /* Never draw the paste layer */ - return 0; + case PCB_LYT_MASK: + case PCB_LYT_PASTE: + return (PCB_LAYERFLG_ON_VISIBLE_SIDE(flags) && PCB->LayerGroups.grp[group].vis /*&& !pinout */ ); } if (idx >= 0 && idx < pcb_max_layer && ((flags & PCB_LYT_ANYTHING) != PCB_LYT_SILK))