diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-05-13 16:19:29 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-05-13 16:19:29 +0300 |
commit | 3a1426afbd0af0a197892235ef13fca93f68805b (patch) | |
tree | ad131b7de6e76699cf964c2cd781452dcea6ed94 | |
parent | e7d5e16af11c2d80cff2e9e547000b240fc1c283 (diff) | |
parent | 5159b8e1eadb3803064a97874f7ebc059ce2be32 (diff) |
Merge branch 'blender-v2.83-release'
-rw-r--r-- | source/blender/editors/object/object_edit.c | 32 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_vertex.c | 10 |
2 files changed, 22 insertions, 20 deletions
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 4d92fc3cb94..690c63a2cbf 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -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); - } - - /* 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 == 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); + } - 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); } } diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index 66e72145835..a18a0145faa 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -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; |