Outliner fix: selecting a bone did not unselect other bones when they are located in a hidden layer

This commit is contained in:
Gaia Clary 2013-03-13 12:52:44 +00:00
parent 8327557232
commit 1ecf9ccf5f

@ -460,9 +460,13 @@ static int tree_element_active_posechannel(bContext *C, Scene *scene, TreeElemen
if (set) {
if (!(pchan->bone->flag & BONE_HIDDEN_P)) {
if (set == 2) ED_pose_deselectall(ob, 2); // 2 = clear active tag
else ED_pose_deselectall(ob, 0); // 0 = deselect
if (set != 2) {
bPoseChannel *pchannel;
/* single select forces all other bones to get unselected */
for (pchannel = ob->pose->chanbase.first; pchannel; pchannel = pchannel->next)
pchannel->bone->flag &= ~(BONE_TIPSEL | BONE_SELECTED | BONE_ROOTSEL);
}
if (set == 2 && (pchan->bone->flag & BONE_SELECTED)) {
pchan->bone->flag &= ~BONE_SELECTED;
}
@ -497,8 +501,12 @@ static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te,
if (!(bone->flag & BONE_HIDDEN_P)) {
Object *ob = OBACT;
if (ob) {
if (set == 2) ED_pose_deselectall(ob, 2); // 2 is clear active tag
else ED_pose_deselectall(ob, 0);
if (set != 2) {
bPoseChannel *pchannel;
/* single select forces all other bones to get unselected */
for (pchannel = ob->pose->chanbase.first; pchannel; pchannel = pchannel->next)
pchannel->bone->flag &= ~(BONE_TIPSEL | BONE_SELECTED | BONE_ROOTSEL);
}
}
if (set == 2 && (bone->flag & BONE_SELECTED)) {