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:
authorCampbell Barton <ideasman42@gmail.com>2018-10-04 09:46:20 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-10-04 09:46:20 +0300
commitb7aeadcaa9c839be95023ee29d198abd3447fcc3 (patch)
treef6834b1c4d8070511062f7f28fdb16e426d9c6fc
parent105f9e577f22de7d5b3ba36abfdc60e1baf4f809 (diff)
Gizmo: UV transform cage now uses all edit-objects
-rw-r--r--source/blender/editors/transform/transform_gizmo_2d.c20
1 files 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);
}