[Bf-blender-cvs] [038345fa565] master: Fix T89861: Checking face selection breaks UV stitch operator

Campbell Barton noreply at git.blender.org
Fri Jul 16 09:50:09 CEST 2021


Commit: 038345fa5650350f68df690fcd77f1ddc451b07b
Author: Campbell Barton
Date:   Fri Jul 16 17:47:42 2021 +1000
Branches: master
https://developer.blender.org/rB038345fa5650350f68df690fcd77f1ddc451b07b

Fix T89861: Checking face selection breaks UV stitch operator

===================================================================

M	source/blender/editors/uvedit/uvedit_smart_stitch.c

===================================================================

diff --git a/source/blender/editors/uvedit/uvedit_smart_stitch.c b/source/blender/editors/uvedit/uvedit_smart_stitch.c
index b40e50851c3..535a0e00347 100644
--- a/source/blender/editors/uvedit/uvedit_smart_stitch.c
+++ b/source/blender/editors/uvedit/uvedit_smart_stitch.c
@@ -1928,6 +1928,11 @@ static StitchState *stitch_init(bContext *C,
   state->obedit = obedit;
   state->em = em;
 
+  /* Workaround for sync-select & face-select mode which implies all selected faces are detached,
+   * for stitch this isn't useful behavior, see T86924. */
+  const int selectmode_orig = scene->toolsettings->selectmode;
+  scene->toolsettings->selectmode = SCE_SELECT_VERTEX;
+
   /* in uv synch selection, all uv's are visible */
   if (ts->uv_flag & UV_SYNC_SELECTION) {
     state->element_map = BM_uv_element_map_create(state->em->bm, scene, false, false, true, true);
@@ -1935,6 +1940,9 @@ static StitchState *stitch_init(bContext *C,
   else {
     state->element_map = BM_uv_element_map_create(state->em->bm, scene, true, false, true, true);
   }
+
+  scene->toolsettings->selectmode = selectmode_orig;
+
   if (!state->element_map) {
     state_delete(state);
     return NULL;



More information about the Bf-blender-cvs mailing list