diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c index c040230e800..7a7cf81563b 100644 --- a/source/blender/editors/transform/transform_constraints.c +++ b/source/blender/editors/transform/transform_constraints.c @@ -32,6 +32,7 @@ #include "BLT_translation.h" #include "UI_resources.h" +#include "UI_view2d.h" #include "transform.h" #include "transform_gizmo.h" @@ -896,13 +897,12 @@ void drawPropCircle(const struct bContext *C, TransInfo *t) } else if (ELEM(t->spacetype, SPACE_GRAPH, SPACE_ACTION)) { /* only scale y */ - rcti *mask = &t->region->v2d.mask; - rctf *datamask = &t->region->v2d.cur; - float xsize = BLI_rctf_size_x(datamask); - float ysize = BLI_rctf_size_y(datamask); - float xmask = BLI_rcti_size_x(mask); - float ymask = BLI_rcti_size_y(mask); - GPU_matrix_scale_2f(1.0f, (ysize / xsize) * (xmask / ymask)); + float xscale, yscale; + UI_view2d_scale_get(&t->region->v2d, &xscale, &yscale); + + const float fac_scale = xscale / yscale; + GPU_matrix_scale_2f(1.0f, fac_scale); + GPU_matrix_translate_2f(0.0f, (t->center_global[1] / fac_scale) - t->center_global[1]); } eGPUDepthTest depth_test_enabled = GPU_depth_test_get();