From b7aeadcaa9c839be95023ee29d198abd3447fcc3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 4 Oct 2018 16:46:20 +1000 Subject: Gizmo: UV transform cage now uses all edit-objects --- .../blender/editors/transform/transform_gizmo_2d.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/source/blender/editors/transform/transform_gizmo_2d.c b/source/blender/editors/transform/transform_gizmo_2d.c index 45f60bf0833..708b74086b5 100644 --- a/source/blender/editors/transform/transform_gizmo_2d.c +++ b/source/blender/editors/transform/transform_gizmo_2d.c @@ -39,6 +39,7 @@ #include "BKE_context.h" #include "BKE_editmesh.h" +#include "BKE_layer.h" #include "RNA_access.h" @@ -152,9 +153,6 @@ static GizmoGroup2D *gizmogroup2d_init(wmGizmoGroup *gzgroup) */ static void gizmo2d_calc_bounds(const bContext *C, float *r_center, float *r_min, float *r_max) { - SpaceImage *sima = CTX_wm_space_image(C); - Image *ima = ED_space_image(sima); - float min_buf[2], max_buf[2]; if (r_min == NULL) { r_min = min_buf; @@ -163,7 +161,21 @@ static void gizmo2d_calc_bounds(const bContext *C, float *r_center, float *r_min r_max = max_buf; } - if (!ED_uvedit_minmax(CTX_data_scene(C), ima, CTX_data_edit_object(C), r_min, r_max)) { + ScrArea *sa = CTX_wm_area(C); + if (sa->spacetype == SPACE_IMAGE) { + SpaceImage *sima = sa->spacedata.first; + ViewLayer *view_layer = CTX_data_view_layer(C); + Image *ima = ED_space_image(sima); + uint objects_len = 0; + Object **objects = BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs( + view_layer, &objects_len); + if (!ED_uvedit_minmax_multi(CTX_data_scene(C), ima, objects, objects_len, r_min, r_max)) { + zero_v2(r_min); + zero_v2(r_max); + } + MEM_freeN(objects); + } + else { zero_v2(r_min); zero_v2(r_max); } -- cgit v1.2.3