From ea439fdf0c0dd8dfc9dd12e977329eb9b5eb8601 Mon Sep 17 00:00:00 2001 From: Pratik Borhade Date: Wed, 7 May 2025 10:30:58 +0200 Subject: [PATCH] Fix #91188: Change identifier prefix for some sculpt mode operations With `MESH_OT` prefix, the shortcut was added to wrong keymap ("object mode", see: `WM_keymap_guess_opname`). idname of following operations has been changed, they are only exposed in sculpt mode UI (also see their poll function: `geometry_extract_poll`): - `face_set_extract` - `paint_mask_extract` - `paint_mask_slice` Pull Request: https://projects.blender.org/blender/blender/pulls/133852 --- scripts/startup/bl_ui/space_view3d.py | 10 +++++----- source/blender/editors/mesh/editmesh_mask_extract.cc | 12 ++++++------ source/blender/editors/mesh/mesh_intern.hh | 6 +++--- source/blender/editors/mesh/mesh_ops.cc | 6 +++--- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/scripts/startup/bl_ui/space_view3d.py b/scripts/startup/bl_ui/space_view3d.py index bc56ffef258..6c5bedf286f 100644 --- a/scripts/startup/bl_ui/space_view3d.py +++ b/scripts/startup/bl_ui/space_view3d.py @@ -3882,16 +3882,16 @@ class VIEW3D_MT_mask(Menu): layout.separator() - props = layout.operator("mesh.paint_mask_extract", text="Mask Extract") + props = layout.operator("sculpt.paint_mask_extract", text="Mask Extract") layout.separator() - props = layout.operator("mesh.paint_mask_slice", text="Mask Slice") + props = layout.operator("sculpt.paint_mask_slice", text="Mask Slice") props.fill_holes = False props.new_object = False - props = layout.operator("mesh.paint_mask_slice", text="Mask Slice and Fill Holes") + props = layout.operator("sculpt.paint_mask_slice", text="Mask Slice and Fill Holes") props.new_object = False - props = layout.operator("mesh.paint_mask_slice", text="Mask Slice to New Object") + props = layout.operator("sculpt.paint_mask_slice", text="Mask Slice to New Object") layout.separator() @@ -3960,7 +3960,7 @@ class VIEW3D_MT_face_sets(Menu): layout.separator() - props = layout.operator("mesh.face_set_extract", text="Extract Face Set") + props = layout.operator("sculpt.face_set_extract", text="Extract Face Set") layout.separator() diff --git a/source/blender/editors/mesh/editmesh_mask_extract.cc b/source/blender/editors/mesh/editmesh_mask_extract.cc index 6b4fcdaffb0..73f968e0d7e 100644 --- a/source/blender/editors/mesh/editmesh_mask_extract.cc +++ b/source/blender/editors/mesh/editmesh_mask_extract.cc @@ -337,11 +337,11 @@ static void geometry_extract_props(StructRNA *srna) "Extract the mask as a solid object with a solidify modifier"); } -void MESH_OT_paint_mask_extract(wmOperatorType *ot) +void SCULPT_OT_paint_mask_extract(wmOperatorType *ot) { ot->name = "Mask Extract"; ot->description = "Create a new mesh object from the current paint mask"; - ot->idname = "MESH_OT_paint_mask_extract"; + ot->idname = "SCULPT_OT_paint_mask_extract"; ot->poll = geometry_extract_poll; ot->invoke = paint_mask_extract_invoke; @@ -389,11 +389,11 @@ static wmOperatorStatus face_set_extract_invoke(bContext *C, wmOperator *op, con return geometry_extract_apply(C, op, geometry_extract_tag_face_set, ¶ms); } -void MESH_OT_face_set_extract(wmOperatorType *ot) +void SCULPT_OT_face_set_extract(wmOperatorType *ot) { ot->name = "Face Set Extract"; ot->description = "Create a new mesh object from the selected Face Set"; - ot->idname = "MESH_OT_face_set_extract"; + ot->idname = "SCULPT_OT_face_set_extract"; ot->poll = geometry_extract_poll; ot->invoke = face_set_extract_invoke; @@ -552,13 +552,13 @@ static wmOperatorStatus paint_mask_slice_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_paint_mask_slice(wmOperatorType *ot) +void SCULPT_OT_paint_mask_slice(wmOperatorType *ot) { PropertyRNA *prop; ot->name = "Mask Slice"; ot->description = "Slices the paint mask from the mesh"; - ot->idname = "MESH_OT_paint_mask_slice"; + ot->idname = "SCULPT_OT_paint_mask_slice"; ot->poll = geometry_extract_poll; ot->exec = paint_mask_slice_exec; diff --git a/source/blender/editors/mesh/mesh_intern.hh b/source/blender/editors/mesh/mesh_intern.hh index 85957e7a749..a8b9dc7787e 100644 --- a/source/blender/editors/mesh/mesh_intern.hh +++ b/source/blender/editors/mesh/mesh_intern.hh @@ -300,9 +300,9 @@ void MESH_OT_flip_quad_tessellation(wmOperatorType *ot); /* *** editmesh_mask_extract.cc *** */ -void MESH_OT_paint_mask_extract(wmOperatorType *ot); -void MESH_OT_face_set_extract(wmOperatorType *ot); -void MESH_OT_paint_mask_slice(wmOperatorType *ot); +void SCULPT_OT_paint_mask_extract(wmOperatorType *ot); +void SCULPT_OT_face_set_extract(wmOperatorType *ot); +void SCULPT_OT_paint_mask_slice(wmOperatorType *ot); /** Called in `transform_ops.cc`, on each regeneration of key-maps. */ wmKeyMap *point_normals_modal_keymap(wmKeyConfig *keyconf); diff --git a/source/blender/editors/mesh/mesh_ops.cc b/source/blender/editors/mesh/mesh_ops.cc index a7b7fccfaa5..261739fdcbd 100644 --- a/source/blender/editors/mesh/mesh_ops.cc +++ b/source/blender/editors/mesh/mesh_ops.cc @@ -178,9 +178,9 @@ void ED_operatortypes_mesh() WM_operatortype_append(MESH_OT_symmetrize); WM_operatortype_append(MESH_OT_symmetry_snap); - WM_operatortype_append(MESH_OT_paint_mask_extract); - WM_operatortype_append(MESH_OT_face_set_extract); - WM_operatortype_append(MESH_OT_paint_mask_slice); + WM_operatortype_append(SCULPT_OT_paint_mask_extract); + WM_operatortype_append(SCULPT_OT_face_set_extract); + WM_operatortype_append(SCULPT_OT_paint_mask_slice); WM_operatortype_append(MESH_OT_point_normals); WM_operatortype_append(MESH_OT_merge_normals);