Merge branch 'master' into blender2.8
authorCampbell Barton <ideasman42@gmail.com>
Thu, 13 Jul 2017 07:21:11 +0000 (17:21 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 13 Jul 2017 07:21:11 +0000 (17:21 +1000)
source/blender/editors/mesh/editmesh_select.c
source/blender/editors/uvedit/uvedit_ops.c

index 61891907050433ff458b1b0a4801e4575ef49934..c8d8ac683349b44c4651fb5997d8d4d4c6b58c97 100644 (file)
@@ -446,6 +446,9 @@ BMVert *EDBM_vert_find_nearest_ex(
                unsigned int index;
                BMVert *eve;
                
+               /* No afterqueue (yet), so we check it now, otherwise the bm_xxxofs indices are bad. */
+               ED_view3d_backbuf_validate(vc);
+
                index = ED_view3d_backbuf_sample_rect(
                        vc, vc->mval, dist_px, bm_wireoffs, 0xFFFFFF, &dist_test);
                eve = index ? BM_vert_at_index_find_or_table(bm, index - 1) : NULL;
@@ -630,7 +633,8 @@ BMEdge *EDBM_edge_find_nearest_ex(
                float dist_test = 0.0f;
                unsigned int index;
                BMEdge *eed;
-               
+
+               /* No afterqueue (yet), so we check it now, otherwise the bm_xxxofs indices are bad. */
                ED_view3d_backbuf_validate(vc);
 
                index = ED_view3d_backbuf_sample_rect(vc, vc->mval, dist_px, bm_solidoffs, bm_wireoffs, &dist_test);
index 0e33525ceff02c7e583faae3e729fd365f2ecaa8..5ee05273a5d281db0a43bdbc57c4726d184c2954 100644 (file)
@@ -1062,8 +1062,13 @@ static void uv_select_linked(Scene *scene, Image *ima, BMEditMesh *em, const flo
 
        BM_mesh_elem_table_ensure(em->bm, BM_FACE); /* we can use this too */
 
-       /* use winding so we don't consider overlapping islands as connected, see T44320 */
-       vmap = BM_uv_vert_map_create(em->bm, limit, !select_faces, true);
+       /* Note, we had 'use winding' so we don't consider overlapping islands as connected, see T44320
+        * this made *every* projection split the island into front/back islands.
+        * Keep 'use_winding' to false, see: T50970.
+        *
+        * Better solve this by having a delimit option for select-linked operator,
+        * keeping island-select working as is. */
+       vmap = BM_uv_vert_map_create(em->bm, limit, !select_faces, false);
 
        if (vmap == NULL)
                return;