Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2020-05-13 16:19:29 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-05-13 16:19:29 +0300
commit3a1426afbd0af0a197892235ef13fca93f68805b (patch)
treead131b7de6e76699cf964c2cd781452dcea6ed94
parente7d5e16af11c2d80cff2e9e547000b240fc1c283 (diff)
parent5159b8e1eadb3803064a97874f7ebc059ce2be32 (diff)
Merge branch 'blender-v2.83-release'
-rw-r--r--source/blender/editors/object/object_edit.c32
-rw-r--r--source/blender/editors/sculpt_paint/paint_vertex.c10
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;