diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2021-11-16 19:50:05 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2021-11-16 19:56:11 +0300 |
commit | 1572c4d3d3317209bb846ca2d05cafeed06d1ead (patch) | |
tree | d4b4d039987e8007eb0156ecafe779a1ddc91f06 /source/blender/editors/transform | |
parent | bd3755385017ef2fbe37d456982830d49e7b712f (diff) |
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.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r-- | source/blender/editors/transform/transform_generics.c | 23 |
1 files 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); } |