forked from bartvdbraak/blender
Fix T71436: proportional_edit_objects turns off when translating cursor in edit mode
This commit is contained in:
parent
dca32f2b4f
commit
b720c0f6aa
@ -2133,7 +2133,7 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op)
|
|||||||
else if (t->options & CTX_MASK) {
|
else if (t->options & CTX_MASK) {
|
||||||
ts->proportional_mask = proportional != 0;
|
ts->proportional_mask = proportional != 0;
|
||||||
}
|
}
|
||||||
else {
|
else if ((t->options & CTX_CURSOR) == 0) {
|
||||||
ts->proportional_objects = proportional != 0;
|
ts->proportional_objects = proportional != 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2391,7 +2391,6 @@ void createTransData(bContext *C, TransInfo *t)
|
|||||||
/* if tests must match recalcData for correct updates */
|
/* if tests must match recalcData for correct updates */
|
||||||
if (t->options & CTX_CURSOR) {
|
if (t->options & CTX_CURSOR) {
|
||||||
t->flag |= T_CURSOR;
|
t->flag |= T_CURSOR;
|
||||||
t->obedit_type = -1;
|
|
||||||
|
|
||||||
if (t->spacetype == SPACE_IMAGE) {
|
if (t->spacetype == SPACE_IMAGE) {
|
||||||
createTransCursor_image(t);
|
createTransCursor_image(t);
|
||||||
@ -2407,7 +2406,6 @@ void createTransData(bContext *C, TransInfo *t)
|
|||||||
}
|
}
|
||||||
else if (t->options & CTX_TEXTURE) {
|
else if (t->options & CTX_TEXTURE) {
|
||||||
t->flag |= T_TEXTURE;
|
t->flag |= T_TEXTURE;
|
||||||
t->obedit_type = -1;
|
|
||||||
|
|
||||||
createTransTexspace(t);
|
createTransTexspace(t);
|
||||||
countAndCleanTransDataContainer(t);
|
countAndCleanTransDataContainer(t);
|
||||||
|
@ -1416,8 +1416,8 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
|
|||||||
{
|
{
|
||||||
Scene *sce = CTX_data_scene(C);
|
Scene *sce = CTX_data_scene(C);
|
||||||
ViewLayer *view_layer = CTX_data_view_layer(C);
|
ViewLayer *view_layer = CTX_data_view_layer(C);
|
||||||
const eObjectMode object_mode = OBACT(view_layer) ? OBACT(view_layer)->mode : OB_MODE_OBJECT;
|
Object *obact = OBACT(view_layer);
|
||||||
const short object_type = OBACT(view_layer) ? OBACT(view_layer)->type : -1;
|
const eObjectMode object_mode = obact ? obact->mode : OB_MODE_OBJECT;
|
||||||
ToolSettings *ts = CTX_data_tool_settings(C);
|
ToolSettings *ts = CTX_data_tool_settings(C);
|
||||||
ARegion *ar = CTX_wm_region(C);
|
ARegion *ar = CTX_wm_region(C);
|
||||||
ScrArea *sa = CTX_wm_area(C);
|
ScrArea *sa = CTX_wm_area(C);
|
||||||
@ -1437,9 +1437,13 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
|
|||||||
|
|
||||||
t->flag = 0;
|
t->flag = 0;
|
||||||
|
|
||||||
t->obedit_type = ((object_mode == OB_MODE_EDIT) || (object_mode == OB_MODE_EDIT_GPENCIL)) ?
|
if (obact && !(t->options & (CTX_CURSOR | CTX_TEXTURE)) &&
|
||||||
object_type :
|
ELEM(object_mode, OB_MODE_EDIT, OB_MODE_EDIT_GPENCIL)) {
|
||||||
-1;
|
t->obedit_type = obact->type;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
t->obedit_type = -1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Many kinds of transform only use a single handle. */
|
/* Many kinds of transform only use a single handle. */
|
||||||
if (t->data_container == NULL) {
|
if (t->data_container == NULL) {
|
||||||
@ -1776,7 +1780,7 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((t->obedit_type == -1) && ts->proportional_objects) {
|
else if (!(t->options & CTX_CURSOR) && ts->proportional_objects) {
|
||||||
t->flag |= T_PROP_EDIT;
|
t->flag |= T_PROP_EDIT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user