diff --git a/source/blender/editors/transform/transform.cc b/source/blender/editors/transform/transform.cc index 5dc98d88dd5..34e80af9f6c 100644 --- a/source/blender/editors/transform/transform.cc +++ b/source/blender/editors/transform/transform.cc @@ -1732,6 +1732,7 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) { BKE_view_layer_synced_ensure(t->scene, t->view_layer); const Object *obact = BKE_view_layer_active_object_get(t->view_layer); + const eObjectMode object_mode = eObjectMode(obact ? obact->mode : OB_MODE_OBJECT); if (t->spacetype == SPACE_GRAPH) { ts->proportional_fcurve = use_prop_edit; @@ -1742,7 +1743,9 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) else if (t->options & CTX_MASK) { ts->proportional_mask = use_prop_edit; } - else if (obact && obact->mode == OB_MODE_OBJECT) { + else if (object_mode == OB_MODE_OBJECT) { + /* No active object means #TransConvertType_Object [see #convert_type_get()], so use + * toolsetting for *object*. */ ts->proportional_objects = use_prop_edit; } else { diff --git a/source/blender/editors/transform/transform_generics.cc b/source/blender/editors/transform/transform_generics.cc index 22a4bddcd64..1c812ad4205 100644 --- a/source/blender/editors/transform/transform_generics.cc +++ b/source/blender/editors/transform/transform_generics.cc @@ -595,7 +595,9 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve else if (t->options & CTX_MASK) { use_prop_edit = ts->proportional_mask; } - else if (obact && obact->mode == OB_MODE_OBJECT) { + else if (object_mode == OB_MODE_OBJECT) { + /* No active object means #TransConvertType_Object [see #convert_type_get()], so use + * toolsetting for *object*. */ use_prop_edit = ts->proportional_objects; } else {