[Bf-blender-cvs] [e0fd1bf] master: Fix T41227: Do not select unselectable items when unhiding them!

Bastien Montagne noreply at git.blender.org
Tue Jul 29 13:58:57 CEST 2014


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;




More information about the Bf-blender-cvs mailing list