[Bf-blender-cvs] [29deaaee007] soc-2021-uv-edge-select-support: Fix: Deselecting edges in sticky vertex mode

Siddhartha Jejurkar noreply at git.blender.org
Sat Sep 11 11:58:44 CEST 2021


Commit: 29deaaee007faaa9a42a73d29dc1b15f330e745b
Author: Siddhartha Jejurkar
Date:   Sat Sep 11 15:25:40 2021 +0530
Branches: soc-2021-uv-edge-select-support
https://developer.blender.org/rB29deaaee007faaa9a42a73d29dc1b15f330e745b

Fix: Deselecting edges in sticky vertex mode

Fixes the bug where deselecting an UV edge in sticky vertex mode would
deselect the UV vertices as well.

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

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

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

diff --git a/source/blender/editors/uvedit/uvedit_select.c b/source/blender/editors/uvedit/uvedit_select.c
index 98fa6753b61..14480acff9f 100644
--- a/source/blender/editors/uvedit/uvedit_select.c
+++ b/source/blender/editors/uvedit/uvedit_select.c
@@ -457,12 +457,24 @@ void uvedit_edge_select_set_with_sticky(const struct SpaceImage *sima,
         if (uvedit_face_visible_test(scene, l_radial_iter->f)) {
           uvedit_edge_select_set(scene, em, l_radial_iter, select, do_history, cd_loop_uv_offset);
 
-          uvedit_uv_select_shared_location(
-              scene, em, l_radial_iter, select, false, do_history, cd_loop_uv_offset);
-          uvedit_uv_select_shared_location(
-              scene, em, l_radial_iter->next, select, false, do_history, cd_loop_uv_offset);
+          if (select) {
+            uvedit_uv_select_shared_location(
+                scene, em, l_radial_iter, select, false, do_history, cd_loop_uv_offset);
+            uvedit_uv_select_shared_location(
+                scene, em, l_radial_iter->next, select, false, do_history, cd_loop_uv_offset);
+          }
+          else {
+            if (!uvedit_vert_is_any_other_edge_selected(scene, l_radial_iter, cd_loop_uv_offset)) {
+              uvedit_uv_select_shared_location(
+                  scene, em, l_radial_iter, select, false, do_history, cd_loop_uv_offset);
+            }
+            if (!uvedit_vert_is_any_other_edge_selected(
+                    scene, l_radial_iter->next, cd_loop_uv_offset)) {
+              uvedit_uv_select_shared_location(
+                  scene, em, l_radial_iter->next, select, false, do_history, cd_loop_uv_offset);
+            }
+          }
         }
-
       } while ((l_radial_iter = l_radial_iter->radial_next) != l);
       break;
     }



More information about the Bf-blender-cvs mailing list