Fix T57640: UV unwrap packing not working without sync selection.
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Fri, 7 Dec 2018 12:52:14 +0000 (13:52 +0100)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Fri, 7 Dec 2018 12:54:59 +0000 (13:54 +0100)
source/blender/editors/include/ED_uvedit.h
source/blender/editors/uvedit/uvedit_unwrap_ops.c

index f7d647bd89cd9bc3808915bcfc664fc8a8a414cc..2fc15f72fcad98e129d8be578067615dab204a5b 100644 (file)
@@ -127,10 +127,11 @@ void ED_uvedit_live_unwrap_end(short cancel);
 
 void ED_uvedit_live_unwrap(struct Scene *scene, struct Object *obedit);
 void ED_uvedit_pack_islands(
-        struct Scene *scene, struct Object *ob, struct BMesh *bm, bool selected, bool correct_aspect, bool do_rotate);
+        struct Scene *scene, struct Object *ob, struct BMesh *bm,
+        bool selected, bool correct_aspect, bool do_rotate);
 void ED_uvedit_pack_islands_multi(
         struct Scene *scene, struct Object **objects, const uint objects_len,
-        bool selected, bool correct_aspect, bool do_rotate);
+        bool selected, bool correct_aspect, bool do_rotate, bool implicit);
 void ED_uvedit_unwrap_cube_project(
         struct BMesh *bm, float cube_size, bool use_select, const float center[3]);
 
index 9a7fd97bdf33a81f27d53377fb8b85d6394bedcc..ee637d4ae5e2b412cccc9043347a047aaad5a89b 100644 (file)
@@ -849,11 +849,11 @@ void ED_uvedit_pack_islands(Scene *scene, Object *ob, BMesh *bm, bool selected,
 
 void ED_uvedit_pack_islands_multi(
         Scene *scene, Object **objects, const uint objects_len,
-        bool selected, bool correct_aspect, bool do_rotate)
+        bool selected, bool correct_aspect, bool do_rotate, bool implicit)
 {
        ParamHandle *handle;
        handle = construct_param_handle_multi(
-               scene, objects, objects_len, true, false, selected, correct_aspect);
+               scene, objects, objects_len, implicit, false, selected, correct_aspect);
        param_pack(handle, scene->toolsettings->uvcalc_margin, do_rotate);
        param_flush(handle);
        param_delete(handle);
@@ -878,7 +878,7 @@ static int pack_islands_exec(bContext *C, wmOperator *op)
        else
                RNA_float_set(op->ptr, "margin", scene->toolsettings->uvcalc_margin);
 
-       ED_uvedit_pack_islands_multi(scene, objects, objects_len, true, true, do_rotate);
+       ED_uvedit_pack_islands_multi(scene, objects, objects_len, true, true, do_rotate, true);
 
        for (uint ob_index = 0; ob_index < objects_len; ob_index++) {
                Object *obedit = objects[ob_index];
@@ -1516,7 +1516,7 @@ static int unwrap_exec(bContext *C, wmOperator *op)
                WM_event_add_notifier(C, NC_GEOM | ND_DATA, obedit->data);
        }
 
-       ED_uvedit_pack_islands_multi(scene, objects, objects_len, true, true, true);
+       ED_uvedit_pack_islands_multi(scene, objects, objects_len, true, true, true, implicit);
 
        MEM_freeN(objects);