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;