Merge branch 'blender-v3.2-release'

This commit is contained in:
Philipp Oeser 2022-05-03 09:50:32 +02:00
commit 8e71ba12e5
2 changed files with 12 additions and 9 deletions

View File

@ -208,12 +208,15 @@ static void ringsel_finish(bContext *C, wmOperator *op)
EDBM_selectmode_flush_ex(lcd->em, SCE_SELECT_VERTEX);
}
/* we can't slide multiple edges in vertex select mode */
/* We can't slide multiple edges in vertex select mode, force edge select mode. Do this for
* all meshes in multi-object editmode so their selectmode is in sync for following
* operators. */
else if (is_macro && (cuts > 1) && (em->selectmode & SCE_SELECT_VERTEX)) {
EDBM_selectmode_disable(lcd->vc.scene, em, SCE_SELECT_VERTEX, SCE_SELECT_EDGE);
EDBM_selectmode_disable_multi(C, SCE_SELECT_VERTEX, SCE_SELECT_EDGE);
}
/* Force edge slide to edge select mode in face select mode. */
else if (EDBM_selectmode_disable(lcd->vc.scene, em, SCE_SELECT_FACE, SCE_SELECT_EDGE)) {
/* Force edge slide to edge select mode in face select mode. Do this for all meshes in
* multi-object editmode so their selectmode is in sync for following operators. */
else if (EDBM_selectmode_disable_multi(C, SCE_SELECT_FACE, SCE_SELECT_EDGE)) {
/* pass, the change will flush selection */
}
else {

View File

@ -315,6 +315,8 @@ static void TRANSFORM_OT_create_orientation(struct wmOperatorType *ot)
#ifdef USE_LOOPSLIDE_HACK
/**
* Special hack for MESH_OT_loopcut_slide so we get back to the selection mode
* Do this for all meshes in multi-object editmode so their selectmode is in sync for following
* operators
*/
static void transformops_loopsel_hack(bContext *C, wmOperator *op)
{
@ -334,12 +336,10 @@ static void transformops_loopsel_hack(bContext *C, wmOperator *op)
(mesh_select_mode[1] ? SCE_SELECT_EDGE : 0) |
(mesh_select_mode[2] ? SCE_SELECT_FACE : 0));
/* still switch if we were originally in face select mode */
/* Still switch if we were originally in face select mode. */
if ((ts->selectmode != selectmode_orig) && (selectmode_orig != SCE_SELECT_FACE)) {
Object *obedit = CTX_data_edit_object(C);
BMEditMesh *em = BKE_editmesh_from_object(obedit);
em->selectmode = ts->selectmode = selectmode_orig;
EDBM_selectmode_set(em);
ts->selectmode = selectmode_orig;
EDBM_selectmode_set_multi(C, selectmode_orig);
}
}
}