Fix T78259: Proportional editing does not work in particle editing
This is a long-standing bug, possibly proportional editing never worked in particle mode. Some parameter definitions in the transform code are scattered and sometimes duplicated. Proportional editing is a parameter that depends only on the Convert type and not `spacetype`, `CTX_` or `obedit_type`.
This commit is contained in:
@@ -1086,7 +1086,6 @@ void createTransData(bContext *C, TransInfo *t)
|
||||
convert_type = TC_MBALL_VERTS;
|
||||
}
|
||||
else if (t->obedit_type == OB_ARMATURE) {
|
||||
t->flag &= ~T_PROP_EDIT;
|
||||
convert_type = TC_ARMATURE_VERTS;
|
||||
}
|
||||
}
|
||||
@@ -1164,6 +1163,7 @@ void createTransData(bContext *C, TransInfo *t)
|
||||
break;
|
||||
case TC_ARMATURE_VERTS:
|
||||
createTransArmatureVerts(t);
|
||||
init_prop_edit = false;
|
||||
break;
|
||||
case TC_CURSOR_IMAGE:
|
||||
createTransCursor_image(t);
|
||||
@@ -1291,6 +1291,10 @@ void createTransData(bContext *C, TransInfo *t)
|
||||
* and are still added into transform data. */
|
||||
sort_trans_data_selected_first(t);
|
||||
}
|
||||
|
||||
if (!init_prop_edit) {
|
||||
t->flag &= ~T_PROP_EDIT;
|
||||
}
|
||||
}
|
||||
|
||||
BLI_assert((!(t->flag & T_EDIT)) == (!(t->obedit_type != -1)));
|
||||
|
||||
@@ -650,34 +650,9 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
|
||||
t->flag |= initTransInfo_edit_pet_to_flag(proportional);
|
||||
}
|
||||
else {
|
||||
/* use settings from scene only if modal */
|
||||
if (t->flag & T_MODAL) {
|
||||
if ((t->options & CTX_NO_PET) == 0) {
|
||||
if (t->spacetype == SPACE_GRAPH) {
|
||||
t->flag |= initTransInfo_edit_pet_to_flag(ts->proportional_fcurve);
|
||||
}
|
||||
else if (t->spacetype == SPACE_ACTION) {
|
||||
t->flag |= initTransInfo_edit_pet_to_flag(ts->proportional_action);
|
||||
}
|
||||
else if (t->obedit_type != -1) {
|
||||
t->flag |= initTransInfo_edit_pet_to_flag(ts->proportional_edit);
|
||||
}
|
||||
else if (t->options & CTX_GPENCIL_STROKES) {
|
||||
t->flag |= initTransInfo_edit_pet_to_flag(ts->proportional_edit);
|
||||
}
|
||||
else if (t->options & CTX_MASK) {
|
||||
if (ts->proportional_mask) {
|
||||
t->flag |= T_PROP_EDIT;
|
||||
|
||||
if (ts->proportional_edit & PROP_EDIT_CONNECTED) {
|
||||
t->flag |= T_PROP_CONNECTED;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!(t->options & CTX_CURSOR) && ts->proportional_objects) {
|
||||
t->flag |= T_PROP_EDIT;
|
||||
}
|
||||
}
|
||||
/* Use settings from scene only if modal. */
|
||||
if (t->flag & T_MODAL && (t->options & CTX_NO_PET) == 0) {
|
||||
t->flag |= initTransInfo_edit_pet_to_flag(ts->proportional_edit);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user