Commit: e0fd1bf4329f41e24ada5b880dd3e98a1dffb17d Author: Bastien Montagne Date: Tue Jul 29 12:58:12 2014 +0200 Branches: master https://developer.blender.org/rBe0fd1bf4329f41e24ada5b880dd3e98a1dffb17d
Fix T41227: Do not select unselectable items when unhiding them! =================================================================== M source/blender/editors/armature/armature_edit.c M source/blender/editors/armature/pose_edit.c M source/blender/editors/object/object_edit.c =================================================================== diff --git a/source/blender/editors/armature/armature_edit.c b/source/blender/editors/armature/armature_edit.c index f71cfd5..1e4d9ba 100644 --- a/source/blender/editors/armature/armature_edit.c +++ b/source/blender/editors/armature/armature_edit.c @@ -1343,7 +1343,9 @@ static int armature_reveal_exec(bContext *C, wmOperator *UNUSED(op)) for (ebone = arm->edbo->first; ebone; ebone = ebone->next) { if (arm->layer & ebone->layer) { if (ebone->flag & BONE_HIDDEN_A) { - ebone->flag |= (BONE_TIPSEL | BONE_SELECTED | BONE_ROOTSEL); + if (!(ebone->flag & BONE_UNSELECTABLE)) { + ebone->flag |= (BONE_TIPSEL | BONE_SELECTED | BONE_ROOTSEL); + } ebone->flag &= ~BONE_HIDDEN_A; } } diff --git a/source/blender/editors/armature/pose_edit.c b/source/blender/editors/armature/pose_edit.c index 890bf66..da68108 100644 --- a/source/blender/editors/armature/pose_edit.c +++ b/source/blender/editors/armature/pose_edit.c @@ -1074,7 +1074,9 @@ static int show_pose_bone_cb(Object *ob, Bone *bone, void *UNUSED(ptr)) if (arm->layer & bone->layer) { if (bone->flag & BONE_HIDDEN_P) { bone->flag &= ~BONE_HIDDEN_P; - bone->flag |= BONE_SELECTED; + if (!(bone->flag & BONE_UNSELECTABLE)) { + bone->flag |= BONE_SELECTED; + } } } diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index d416bff..20e31e3 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -139,7 +139,9 @@ static int object_hide_view_clear_exec(bContext *C, wmOperator *UNUSED(op)) /* XXX need a context loop to handle such cases */ for (base = FIRSTBASE; base; base = base->next) { if ((base->lay & v3d->lay) && base->object->restrictflag & OB_RESTRICT_VIEW) { - base->flag |= SELECT; + if (!(base->object->restrictflag & OB_RESTRICT_SELECT)) { + base->flag |= SELECT; + } base->object->flag = base->flag; base->object->restrictflag &= ~OB_RESTRICT_VIEW; changed = true; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs