Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Oeser <info@graphics-engineer.com>2019-10-23 13:28:32 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2020-03-03 12:01:20 +0300
commitb454a1223317c8d05bc09a745f85eae22be658e8 (patch)
tree22236e3119a1866fd703228703c1433b8cbbc7db /source/blender/editors/mesh
parentee7034949fd8a44e906f26cc18bc30af340c2ab9 (diff)
Separate operators (mesh/curve/armature/gpencil): take user preferences
into account for duplicating actions Previously actions remained linked after duplication, now this is based on the User Preferences (PreferencesEdit.use_duplicate_action). note: default is ON here, so this changes default behavior of separate operators. First intuition was to respect _all_ preferences here (e.g. also duplicating materials if chosen in the User Preferences) but after consideration this is probably not what the User would expect from such 'modeling' opertions (e.g. separate by loose parts resulting in possibly many duplicate materials) Fixes T71038 Maniphest Tasks: T71038 Differential Revision: https://developer.blender.org/D6120
Diffstat (limited to 'source/blender/editors/mesh')
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index 4003a7dd7bb..2176bbceb5f 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -3929,7 +3929,9 @@ static Base *mesh_separate_tagged(
CustomData_bmesh_init_pool(&bm_new->ldata, bm_mesh_allocsize_default.totloop, BM_LOOP);
CustomData_bmesh_init_pool(&bm_new->pdata, bm_mesh_allocsize_default.totface, BM_FACE);
- base_new = ED_object_add_duplicate(bmain, scene, view_layer, base_old, USER_DUP_MESH);
+ /* Take into account user preferences for duplicating actions. */
+ short dupflag = USER_DUP_MESH | (U.dupflag & USER_DUP_ACT);
+ base_new = ED_object_add_duplicate(bmain, scene, view_layer, base_old, dupflag);
/* normally would call directly after but in this case delay recalc */
/* DAG_relations_tag_update(bmain); */
@@ -3999,7 +4001,9 @@ static Base *mesh_separate_arrays(Main *bmain,
CustomData_bmesh_init_pool(&bm_new->ldata, faces_len * 3, BM_LOOP);
CustomData_bmesh_init_pool(&bm_new->pdata, faces_len, BM_FACE);
- base_new = ED_object_add_duplicate(bmain, scene, view_layer, base_old, USER_DUP_MESH);
+ /* Take into account user preferences for duplicating actions. */
+ short dupflag = USER_DUP_MESH | (U.dupflag & USER_DUP_ACT);
+ base_new = ED_object_add_duplicate(bmain, scene, view_layer, base_old, dupflag);
/* normally would call directly after but in this case delay recalc */
/* DAG_relations_tag_update(bmain); */