Fix handling of B-Bone custom handle references in Edit mode undo.
Correct a couple of places that should process the handle pointers.
This commit is contained in:
@@ -549,8 +549,15 @@ static void separate_armature_bones(Main *bmain, Object *ob, short sel)
|
|||||||
|
|
||||||
/* clear the pchan->parent var of any pchan that had this as its parent */
|
/* clear the pchan->parent var of any pchan that had this as its parent */
|
||||||
for (pchn = ob->pose->chanbase.first; pchn; pchn = pchn->next) {
|
for (pchn = ob->pose->chanbase.first; pchn; pchn = pchn->next) {
|
||||||
if (pchn->parent == pchan)
|
if (pchn->parent == pchan) {
|
||||||
pchn->parent = NULL;
|
pchn->parent = NULL;
|
||||||
|
}
|
||||||
|
if (pchn->bbone_next == pchan) {
|
||||||
|
pchn->bbone_next = NULL;
|
||||||
|
}
|
||||||
|
if (pchn->bbone_prev == pchan) {
|
||||||
|
pchn->bbone_prev = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* free any of the extra-data this pchan might have */
|
/* free any of the extra-data this pchan might have */
|
||||||
|
|||||||
@@ -816,6 +816,12 @@ void ED_armature_ebone_listbase_copy(ListBase *lb_dst, ListBase *lb_src)
|
|||||||
if (ebone_dst->parent) {
|
if (ebone_dst->parent) {
|
||||||
ebone_dst->parent = ebone_dst->parent->temp.ebone;
|
ebone_dst->parent = ebone_dst->parent->temp.ebone;
|
||||||
}
|
}
|
||||||
|
if (ebone_dst->bbone_next) {
|
||||||
|
ebone_dst->bbone_next = ebone_dst->bbone_next->temp.ebone;
|
||||||
|
}
|
||||||
|
if (ebone_dst->bbone_prev) {
|
||||||
|
ebone_dst->bbone_prev = ebone_dst->bbone_prev->temp.ebone;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user