Merge branch 'blender-v2.83-release'
This commit is contained in:
commit
3a1426afbd
|
@ -1483,28 +1483,34 @@ static int object_mode_set_exec(bContext *C, wmOperator *op)
|
|||
return OPERATOR_PASS_THROUGH;
|
||||
}
|
||||
|
||||
if (ob->mode != mode) {
|
||||
/* we should be able to remove this call, each operator calls */
|
||||
ED_object_mode_compat_set(C, ob, mode, op->reports);
|
||||
if (toggle == false) {
|
||||
if (ob->mode != mode) {
|
||||
if (mode != OB_MODE_OBJECT) {
|
||||
/* Enter new mode. */
|
||||
ED_object_mode_toggle(C, mode);
|
||||
}
|
||||
else {
|
||||
ED_object_mode_compat_set(C, ob, mode, op->reports);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* Exit current mode if it's not the mode we're setting */
|
||||
if (mode != OB_MODE_OBJECT) {
|
||||
/* Enter new mode. */
|
||||
ED_object_mode_toggle(C, mode);
|
||||
}
|
||||
|
||||
/* Exit current mode if it's not the mode we're setting */
|
||||
if (mode != OB_MODE_OBJECT && (ob->mode != mode || toggle)) {
|
||||
/* Enter new mode */
|
||||
ED_object_mode_toggle(C, mode);
|
||||
}
|
||||
|
||||
if (toggle) {
|
||||
/* Special case for Object mode! */
|
||||
if (mode == OB_MODE_OBJECT && restore_mode == OB_MODE_OBJECT &&
|
||||
ob->restore_mode != OB_MODE_OBJECT) {
|
||||
if ((mode == OB_MODE_OBJECT) && (restore_mode == OB_MODE_OBJECT) &&
|
||||
(ob->restore_mode != OB_MODE_OBJECT)) {
|
||||
ED_object_mode_toggle(C, ob->restore_mode);
|
||||
}
|
||||
else if (ob->mode == mode) {
|
||||
/* For toggling, store old mode so we know what to go back to */
|
||||
ob->restore_mode = restore_mode;
|
||||
}
|
||||
else if (ob->restore_mode != OB_MODE_OBJECT && ob->restore_mode != mode) {
|
||||
else if ((ob->restore_mode != OB_MODE_OBJECT) && (ob->restore_mode != mode)) {
|
||||
ED_object_mode_toggle(C, ob->restore_mode);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1450,8 +1450,7 @@ static int wpaint_mode_toggle_exec(bContext *C, wmOperator *op)
|
|||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
/* for switching to/from mode */
|
||||
static bool paint_poll_test(bContext *C)
|
||||
static bool paint_mode_toggle_poll_test(bContext *C)
|
||||
{
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
if (ob == NULL || ob->type != OB_MESH) {
|
||||
|
@ -1460,9 +1459,6 @@ static bool paint_poll_test(bContext *C)
|
|||
if (!ob->data || ID_IS_LINKED(ob->data)) {
|
||||
return 0;
|
||||
}
|
||||
if (CTX_data_edit_object(C)) {
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -1476,7 +1472,7 @@ void PAINT_OT_weight_paint_toggle(wmOperatorType *ot)
|
|||
|
||||
/* api callbacks */
|
||||
ot->exec = wpaint_mode_toggle_exec;
|
||||
ot->poll = paint_poll_test;
|
||||
ot->poll = paint_mode_toggle_poll_test;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
|
@ -2683,7 +2679,7 @@ void PAINT_OT_vertex_paint_toggle(wmOperatorType *ot)
|
|||
|
||||
/* api callbacks */
|
||||
ot->exec = vpaint_mode_toggle_exec;
|
||||
ot->poll = paint_poll_test;
|
||||
ot->poll = paint_mode_toggle_poll_test;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
|
|
Loading…
Reference in New Issue