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:
authorGermano Cavalcante <germano.costa@ig.com.br>2021-11-16 19:50:05 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2021-11-16 19:56:11 +0300
commit1572c4d3d3317209bb846ca2d05cafeed06d1ead (patch)
treed4b4d039987e8007eb0156ecafe779a1ddc91f06 /source/blender/editors/transform
parentbd3755385017ef2fbe37d456982830d49e7b712f (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.c23
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);
}