From 201ab7c54025afc42570ce3df3d2bb7f37fe36be Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Wed, 24 Feb 2021 16:19:44 -0300 Subject: Fix T85823: bpy.ops.transform... ignoring 'center_override' for Bezier control points `transform_around_single_fallback_ex` ignored that the center could be overwritten. --- source/blender/editors/transform/transform_convert.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c index 6b2e9dd9840..e2ec857b670 100644 --- a/source/blender/editors/transform/transform_convert.c +++ b/source/blender/editors/transform/transform_convert.c @@ -73,12 +73,20 @@ bool transform_mode_use_local_origins(const TransInfo *t) */ void transform_around_single_fallback_ex(TransInfo *t, int data_len_all) { - if ((ELEM(t->around, V3D_AROUND_CENTER_BOUNDS, V3D_AROUND_CENTER_MEDIAN, V3D_AROUND_ACTIVE)) && - transform_mode_use_local_origins(t)) { - if (data_len_all == 1) { - t->around = V3D_AROUND_LOCAL_ORIGINS; - } + if (data_len_all != 1) { + return; } + if (!ELEM(t->around, V3D_AROUND_CENTER_BOUNDS, V3D_AROUND_CENTER_MEDIAN, V3D_AROUND_ACTIVE)) { + return; + } + if (!transform_mode_use_local_origins(t)) { + return; + } + if (t->flag | T_OVERRIDE_CENTER) { + return; + } + + t->around = V3D_AROUND_LOCAL_ORIGINS; } void transform_around_single_fallback(TransInfo *t) -- cgit v1.2.3