From 4627e0d3d0ea2596f7b60f6327f592ca5e99fc9a Mon Sep 17 00:00:00 2001 From: Pratik Borhade Date: Wed, 14 May 2025 11:42:15 +0200 Subject: [PATCH] Fix #138168: Weightpainting: Smooth Operator does not respect locked flag `BKE_object_defgroup_subset_from_select_type` does not consider locked status of vertex group, ends up smoothing all vgroup when `deform pose bones` is selected. Pull Request: https://projects.blender.org/blender/blender/pulls/138435 --- source/blender/blenkernel/intern/object_deform.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/blender/blenkernel/intern/object_deform.cc b/source/blender/blenkernel/intern/object_deform.cc index 99c48ed2fec..cc51e7bf9a0 100644 --- a/source/blender/blenkernel/intern/object_deform.cc +++ b/source/blender/blenkernel/intern/object_deform.cc @@ -793,12 +793,15 @@ bool *BKE_object_defgroup_subset_from_select_type(Object *ob, case WT_VGROUP_BONE_DEFORM: { int i; defgroup_validmap = BKE_object_defgroup_validmap_get(ob, *r_defgroup_tot); + const bool *locked_vgroups = BKE_object_defgroup_lock_flags_get(ob, *r_defgroup_tot); *r_subset_count = 0; for (i = 0; i < *r_defgroup_tot; i++) { + defgroup_validmap[i] &= !(locked_vgroups && locked_vgroups[i]); if (defgroup_validmap[i] == true) { *r_subset_count += 1; } } + MEM_SAFE_FREE(locked_vgroups); break; } case WT_VGROUP_BONE_DEFORM_OFF: {