Index: source/blender/makesdna/DNA_view3d_types.h =================================================================== --- source/blender/makesdna/DNA_view3d_types.h (revision 16404) +++ source/blender/makesdna/DNA_view3d_types.h (working copy) @@ -86,7 +86,8 @@ float winmat1[4][4]; // persp(1) storage, for swap matrices float viewmat1[4][4]; - float viewquat[4], dist, zfac, pad0; /* zfac is initgrabz() result */ + float viewquat[4], dist, zfac; /* zfac is initgrabz() result */ + int lay_used; /* used while drawing */ short persp; short view; Index: source/blender/src/drawview.c =================================================================== --- source/blender/src/drawview.c (revision 16404) +++ source/blender/src/drawview.c (working copy) @@ -3023,9 +3023,12 @@ for(SETLOOPER(G.scene->set, base)) object_handle_update(base->object); // bke_object.h } - - for(base= G.scene->base.first; base; base= base->next) + + v3d->lay_used = 0; + for(base= G.scene->base.first; base; base= base->next) { object_handle_update(base->object); // bke_object.h + v3d->lay_used |= base->lay; + } /* shadow buffers, before we setup matrices */ if(draw_glsl_material(NULL, v3d->drawtype)) Index: source/blender/src/header_view3d.c =================================================================== --- source/blender/src/header_view3d.c (revision 16404) +++ source/blender/src/header_view3d.c (working copy) @@ -5733,19 +5733,26 @@ /* LAYERS */ if(G.obedit==NULL && G.vd->localview==0) { + int icon; uiBlockBeginAlign(block); - for(a=0; a<5; a++) - uiDefButBitI(block, TOG, 1<lay), 0, 0, 0, 0, "Toggles Layer visibility (Num, Shift Num)"); - for(a=0; a<5; a++) - uiDefButBitI(block, TOG, 1<<(a+10), B_LAY+10+a, "",(short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); - + for(a=0; a<5; a++) { + icon = (G.vd->lay_used & 1<lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); + } + for(a=0; a<5; a++) { + icon = (G.vd->lay_used & 1<<(a+10)) ? ICON_ZOOMOUT : ICON_BLANK1; + uiDefIconButBitI(block, TOG, 1<<(a+10), B_LAY+10+a, icon, (short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); + } xco+= 5; uiBlockBeginAlign(block); - for(a=5; a<10; a++) - uiDefButBitI(block, TOG, 1<lay), 0, 0, 0, 0, "Toggles Layer visibility (Num, Shift Num)"); - for(a=5; a<10; a++) - uiDefButBitI(block, TOG, 1<<(a+10), B_LAY+10+a, "",(short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); - + for(a=5; a<10; a++) { + icon = (G.vd->lay_used & 1<lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); + } + for(a=5; a<10; a++) { + icon = (G.vd->lay_used & 1<<(a+10)) ? ICON_ZOOMOUT : ICON_BLANK1; + uiDefIconButBitI(block, TOG, 1<<(a+10), B_LAY+10+a, icon, (short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)"); + } uiBlockEndAlign(block); xco+= (a-2)*(XIC/2)+3;