From 1572c4d3d3317209bb846ca2d05cafeed06d1ead Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Tue, 16 Nov 2021 13:50:05 -0300 Subject: Fix T93011: Individual origins being used when pivot point is override There should be a special `t->around` for this case, but for now let's just avoid having the individual origins overlap. --- .../blender/editors/transform/transform_generics.c | 23 +++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 2fab22594e8..4194fb2a0ad 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -152,6 +152,11 @@ static void *t_view_get(TransInfo *t) static int t_around_get(TransInfo *t) { + if (t->flag & T_OVERRIDE_CENTER) { + /* Avoid initialization of individual origins (#V3D_AROUND_LOCAL_ORIGINS). */ + return V3D_AROUND_CENTER_BOUNDS; + } + ScrArea *area = t->area; if (t->spacetype == SPACE_VIEW3D) { /* Bend always uses the cursor. */ @@ -364,6 +369,15 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve t->options |= CTX_SEQUENCER_IMAGE; } + setTransformViewAspect(t, t->aspect); + + if (op && (prop = RNA_struct_find_property(op->ptr, "center_override")) && + RNA_property_is_set(op->ptr, prop)) { + RNA_property_float_get_array(op->ptr, prop, t->center_global); + mul_v3_v3(t->center_global, t->aspect); + t->flag |= T_OVERRIDE_CENTER; + } + t->view = t_view_get(t); t->around = t_around_get(t); @@ -664,15 +678,6 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve t->flag |= T_NO_CURSOR_WRAP; } - setTransformViewAspect(t, t->aspect); - - if (op && (prop = RNA_struct_find_property(op->ptr, "center_override")) && - RNA_property_is_set(op->ptr, prop)) { - RNA_property_float_get_array(op->ptr, prop, t->center_global); - mul_v3_v3(t->center_global, t->aspect); - t->flag |= T_OVERRIDE_CENTER; - } - setTransformViewMatrices(t); initNumInput(&t->num); } -- cgit v1.2.3