Fix T54712: Undo w/ multi-edit failed

This commit is contained in:
Campbell Barton 2018-04-19 08:58:49 +02:00
parent 9a301978bd
commit 81673f5ab7
Notes: blender-bot 2023-02-14 06:54:28 +01:00
Referenced by issue #54712, Error in console after multi-object editing undo
2 changed files with 5 additions and 13 deletions

View File

@ -511,7 +511,7 @@ bool BKE_object_is_in_editmode(const Object *ob)
bool BKE_object_is_in_editmode_and_selected(const Object *ob)
{
if ((ob->flag & SELECT) && (BKE_object_is_in_editmode(ob))) {
if ((ob->base_flag & BASE_SELECTED) && (BKE_object_is_in_editmode(ob))) {
return true;
}
return false;

View File

@ -468,9 +468,7 @@ static int editmode_toggle_exec(bContext *C, wmOperator *op)
FOREACH_SELECTED_OBJECT_BEGIN(view_layer, ob)
{
if ((ob != obact) && (ob->type == obact->type)) {
if (ob->flag & SELECT) {
ED_object_editmode_enter_ex(scene, ob, EM_WAITCURSOR | EM_NO_CONTEXT);
}
ED_object_editmode_enter_ex(scene, ob, EM_WAITCURSOR | EM_NO_CONTEXT);
}
}
FOREACH_SELECTED_OBJECT_END;
@ -482,9 +480,7 @@ static int editmode_toggle_exec(bContext *C, wmOperator *op)
FOREACH_SELECTED_OBJECT_BEGIN(view_layer, ob)
{
if ((ob != obact) && (ob->type == obact->type)) {
if (ob->flag & SELECT) {
ED_object_editmode_exit_ex(NULL, scene, ob, EM_FREEDATA | EM_WAITCURSOR);
}
ED_object_editmode_exit_ex(NULL, scene, ob, EM_FREEDATA | EM_WAITCURSOR);
}
}
FOREACH_SELECTED_OBJECT_END;
@ -560,9 +556,7 @@ static int posemode_exec(bContext *C, wmOperator *op)
(ob->type == OB_ARMATURE) &&
(ob->mode & mode_flag))
{
if (ob->flag & SELECT) {
ED_object_posemode_exit_ex(bmain, ob);
}
ED_object_posemode_exit_ex(bmain, ob);
}
}
FOREACH_SELECTED_OBJECT_END;
@ -580,9 +574,7 @@ static int posemode_exec(bContext *C, wmOperator *op)
(ob->mode == OB_MODE_OBJECT) &&
(!ID_IS_LINKED(ob)))
{
if (ob->flag & SELECT) {
ED_object_posemode_enter_ex(bmain, ob);
}
ED_object_posemode_enter_ex(bmain, ob);
}
}
FOREACH_SELECTED_OBJECT_END;