Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 29453) +++ trunk/src/draw.c (revision 29454) @@ -718,13 +718,13 @@ pcb_lighten_color(&orig_color, &Layer->meta.real.color, 0.5); restore_color = 1; } - else if (conf_core.appearance.invis_other_groups && !current_grp) { + else if (info->xform->invis_other_groups && !current_grp) { orig_color = Layer->meta.real.color; Layer->meta.real.color = conf_core.appearance.color.invisible_objects; restore_color = 1; } - if (conf_core.appearance.black_current_group && current_grp) { + if (info->xform->black_current_group && current_grp) { if (!restore_color) { orig_color = Layer->meta.real.color; restore_color = 1; @@ -1109,6 +1109,8 @@ dst->check_planes = conf_core.editor.check_planes; dst->hide_floaters = conf_core.editor.hide_names; dst->show_solder_side = conf_core.editor.show_solder_side; + dst->invis_other_groups = conf_core.appearance.invis_other_groups; + dst->black_current_group = conf_core.appearance.black_current_group; dst->flag_color = 1; } Index: trunk/src/obj_common.h =================================================================== --- trunk/src/obj_common.h (revision 29453) +++ trunk/src/obj_common.h (revision 29454) @@ -104,7 +104,9 @@ unsigned check_planes:1; /* when 1, draw polygons only */ unsigned flag_color:1; /* when zero, ignore colors that would be derived from object flags (i.e. selection, warn, found) */ unsigned hide_floaters:1; /* when 1 omit drawing floaters (typically refdes text on silk) */ - unsigned show_solder_side:1; + unsigned show_solder_side:1; /* GUI */ + unsigned invis_other_groups:1; /* GUI */ + unsigned black_current_group:1; /* GUI */ /* WARNING: After adding new fields, make sure to update pcb_xform_add() and pcb_xform_is_nop() below */ }; @@ -126,6 +128,8 @@ __dst__->flag_color |= __src__->flag_color; \ __dst__->hide_floaters |= __src__->hide_floaters; \ __dst__->show_solder_side |= __src__->show_solder_side; \ + __dst__->invis_other_groups |= __src__->invis_other_groups; \ + __dst__->black_current_group |= __src__->black_current_group; \ } while(0) #define pcb_xform_is_nop(src) (\ ((src)->bloat == 0) && \ @@ -138,7 +142,9 @@ ((src)->check_planes == 0) && \ ((src)->flag_color == 0) && \ ((src)->hide_floaters == 0) && \ - ((src)->show_solder_side == 0) \ + ((src)->show_solder_side == 0) && \ + ((src)->invis_other_groups == 0) && \ + ((src)->black_current_group == 0) \ ) /* Returns true if overlay drawing should be omitted */ Index: trunk/src/obj_pstk.c =================================================================== --- trunk/src/obj_pstk.c (revision 29453) +++ trunk/src/obj_pstk.c (revision 29454) @@ -348,10 +348,10 @@ layer_color = &ly1->meta.real.color; } - if (conf_core.appearance.invis_other_groups && !is_current) { + if (xform->invis_other_groups && !is_current) { color = &conf_core.appearance.color.invisible_objects; } - else if (conf_core.appearance.black_current_group && is_current) { + else if (xform->black_current_group && is_current) { color = pcb_color_black; } else if (ps->term == NULL) {