svn merge -r39433:39493 https://svn.blender.org/svnroot/bf-blender/trunk/blender
[blender-staging.git] / source / blender / editors / space_view3d / view3d_header.c
index 117528114c6b782747a884056fbe29992388291e..c85f7d3af8a3d413d6a7d019ce6b7bc2e7dc3118 100644 (file)
@@ -282,31 +282,32 @@ static char *view3d_modeselect_pup(Scene *scene)
        str += sprintf(str, formatstr, "Object Mode", OB_MODE_OBJECT, ICON_OBJECT_DATA);
        
        if(ob==NULL || ob->data==NULL) return string;
-       if(ob->id.lib || ((ID *)ob->data)->lib) return string;
+       if(ob->id.lib) return string;
        
-       /* if active object is editable */
-       if ( ((ob->type == OB_MESH)
-               || (ob->type == OB_CURVE) || (ob->type == OB_SURF) || (ob->type == OB_FONT)
-               || (ob->type == OB_MBALL) || (ob->type == OB_LATTICE))) {
-               
-               str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT, ICON_EDITMODE_HLT);
-       }
-       else if (ob->type == OB_ARMATURE) {
-               if (ob->mode & OB_MODE_POSE)
-                       str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT|OB_MODE_POSE, ICON_EDITMODE_HLT);
-               else
+       if(!((ID *)ob->data)->lib) {
+               /* if active object is editable */
+               if ( ((ob->type == OB_MESH)
+                       || (ob->type == OB_CURVE) || (ob->type == OB_SURF) || (ob->type == OB_FONT)
+                       || (ob->type == OB_MBALL) || (ob->type == OB_LATTICE))) {
+                       
                        str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT, ICON_EDITMODE_HLT);
-       }
+               }
+               else if (ob->type == OB_ARMATURE) {
+                       if (ob->mode & OB_MODE_POSE)
+                               str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT|OB_MODE_POSE, ICON_EDITMODE_HLT);
+                       else
+                               str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT, ICON_EDITMODE_HLT);
+               }
 
-       if (ob->type == OB_MESH) {
+               if (ob->type == OB_MESH) {
 
-               str += sprintf(str, formatstr, "Sculpt Mode", OB_MODE_SCULPT, ICON_SCULPTMODE_HLT);
-               str += sprintf(str, formatstr, "Vertex Paint", OB_MODE_VERTEX_PAINT, ICON_VPAINT_HLT);
-               str += sprintf(str, formatstr, "Texture Paint", OB_MODE_TEXTURE_PAINT, ICON_TPAINT_HLT);
-               str += sprintf(str, formatstr, "Weight Paint", OB_MODE_WEIGHT_PAINT, ICON_WPAINT_HLT);
+                       str += sprintf(str, formatstr, "Sculpt Mode", OB_MODE_SCULPT, ICON_SCULPTMODE_HLT);
+                       str += sprintf(str, formatstr, "Vertex Paint", OB_MODE_VERTEX_PAINT, ICON_VPAINT_HLT);
+                       str += sprintf(str, formatstr, "Texture Paint", OB_MODE_TEXTURE_PAINT, ICON_TPAINT_HLT);
+                       str += sprintf(str, formatstr, "Weight Paint", OB_MODE_WEIGHT_PAINT, ICON_WPAINT_HLT);
+               }
        }
-
-       
+               
        /* if active object is an armature */
        if (ob->type==OB_ARMATURE) {
                str += sprintf(str, formatstr, "Pose Mode", OB_MODE_POSE, ICON_POSE_HLT);