Object Modes: only use selection for mode switch

Selection is no longer needed for an object to be considered in a mode.

Part of T55246 design task, fixes T55187
This commit is contained in:
2018-05-29 14:11:34 +02:00
parent 03b0495d04
commit 8b24f45e6b
8 changed files with 10 additions and 21 deletions

View File

@@ -468,16 +468,16 @@ static int editmode_toggle_exec(bContext *C, wmOperator *op)
else {
ED_object_editmode_exit(C, EM_FREEDATA | EM_WAITCURSOR);
if ((obact->mode & mode_flag) == 0) {
FOREACH_SELECTED_OBJECT_BEGIN(view_layer, ob)
FOREACH_OBJECT_BEGIN(view_layer, ob)
{
if ((ob != obact) && (ob->type == obact->type)) {
ED_object_editmode_exit_ex(scene, ob, EM_FREEDATA | EM_WAITCURSOR);
}
}
FOREACH_SELECTED_OBJECT_END;
FOREACH_OBJECT_END;
}
}
ED_space_image_uv_sculpt_update(CTX_wm_manager(C), scene);
WM_msg_publish_rna_prop(mbus, &obact->id, obact, Object, mode);
@@ -549,7 +549,7 @@ static int posemode_exec(bContext *C, wmOperator *op)
if (ok) {
struct Main *bmain = CTX_data_main(C);
ViewLayer *view_layer = CTX_data_view_layer(C);
FOREACH_SELECTED_OBJECT_BEGIN(view_layer, ob)
FOREACH_OBJECT_BEGIN(view_layer, ob)
{
if ((ob != obact) &&
(ob->type == OB_ARMATURE) &&
@@ -558,7 +558,7 @@ static int posemode_exec(bContext *C, wmOperator *op)
ED_object_posemode_exit_ex(bmain, ob);
}
}
FOREACH_SELECTED_OBJECT_END;
FOREACH_OBJECT_END;
}
}
else {