Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-11-22 03:36:35 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-11-22 03:37:50 +0400
commitf801f8057da824a2306963ea1b10bb5917a267c7 (patch)
tree1469127b0be03882d697fbf66e79315cd4da8b29
parentbd5da19d86e5c490e4945bb4befc50b6eac48a86 (diff)
fix for active bone not saving in editmode.
-rw-r--r--source/blender/editors/armature/armature_utils.c2
-rw-r--r--source/blender/editors/interface/interface_layout.c12
-rw-r--r--source/blender/makesdna/DNA_armature_types.h2
3 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/editors/armature/armature_utils.c b/source/blender/editors/armature/armature_utils.c
index be26ad537fc..7d6b3710a38 100644
--- a/source/blender/editors/armature/armature_utils.c
+++ b/source/blender/editors/armature/armature_utils.c
@@ -501,6 +501,7 @@ void ED_armature_from_edit(Object *obedit)
/* armature bones */
BKE_armature_bonelist_free(&arm->bonebase);
+ arm->act_bone = NULL;
/* remove zero sized bones, this gives unstable restposes */
for (eBone = arm->edbo->first; eBone; eBone = neBone) {
@@ -634,7 +635,6 @@ void ED_armature_to_edit(Object *ob)
ED_armature_edit_free(ob);
arm->edbo = MEM_callocN(sizeof(ListBase), "edbo armature");
arm->act_edbone = make_boneList(arm->edbo, &arm->bonebase, NULL, arm->act_bone);
- arm->act_bone = NULL;
// BIF_freeTemplates(); /* force template update when entering editmode */
}
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index e3686b7560c..b85c30b8710 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -390,11 +390,15 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in
layer_used = arm->layer_used;
- if (arm->edbo && arm->act_edbone) {
- layer_active |= arm->act_edbone->layer;
+ if (arm->edbo) {
+ if (arm->act_edbone) {
+ layer_active |= arm->act_edbone->layer;
+ }
}
- else if (arm->act_bone) {
- layer_active |= arm->act_bone->layer;
+ else {
+ if (arm->act_bone) {
+ layer_active |= arm->act_bone->layer;
+ }
}
}
diff --git a/source/blender/makesdna/DNA_armature_types.h b/source/blender/makesdna/DNA_armature_types.h
index 4780b2e85de..e751966c34d 100644
--- a/source/blender/makesdna/DNA_armature_types.h
+++ b/source/blender/makesdna/DNA_armature_types.h
@@ -88,7 +88,7 @@ typedef struct bArmature {
* - from the user perspective active == last selected
* - active should be ignored when not visible (hidden layer) */
- Bone *act_bone; /* active bone (when not in editmode) */
+ Bone *act_bone; /* active bone */
struct EditBone *act_edbone; /* active editbone (in editmode) */
void *sketch; /* sketch struct for etch-a-ton */