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:
authorCampbell Barton <ideasman42@gmail.com>2019-09-03 18:50:39 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-09-03 19:04:01 +0300
commitb3b59e3b5657ad95ecca4b8c47c3b20c7e55da35 (patch)
tree32419a05239b2007320e087f79510b96a3ccddb3 /source/blender/editors/transform/transform_conversions.c
parente5c8f096f8649250a828d63f5e28577b7ef51677 (diff)
Transform: support snap to children with 'Affect Parents'
Resolves T69398
Diffstat (limited to 'source/blender/editors/transform/transform_conversions.c')
-rw-r--r--source/blender/editors/transform/transform_conversions.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 328cb1d1bbf..611992c1d3c 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -6572,7 +6572,7 @@ static void set_trans_object_base_flags(TransInfo *t)
trans_object_base_deps_flag_prepare(view_layer);
/* Traverse all bases and set all possible flags. */
for (Base *base = view_layer->object_bases.first; base; base = base->next) {
- base->flag_legacy &= ~BA_WAS_SEL;
+ base->flag_legacy &= ~(BA_WAS_SEL | BA_TRANSFORM_LOCKED_IN_PLACE);
if (BASE_SELECTED_EDITABLE(v3d, base)) {
Object *ob = base->object;
Object *parsel = ob->parent;
@@ -6688,7 +6688,8 @@ static void clear_trans_object_base_flags(TransInfo *t)
}
base->flag_legacy &= ~(BA_WAS_SEL | BA_SNAP_FIX_DEPS_FIASCO | BA_TEMP_TAG |
- BA_TRANSFORM_CHILD | BA_TRANSFORM_PARENT);
+ BA_TRANSFORM_CHILD | BA_TRANSFORM_PARENT |
+ BA_TRANSFORM_LOCKED_IN_PLACE);
}
}
@@ -8137,6 +8138,7 @@ static void createTransObject(bContext *C, TransInfo *t)
trans_obchild_in_obmode_ensure_object(
tdo, ob, ob_parent_recurse, OB_SKIP_CHILD_PARENT_APPLY_TRANSFORM);
BLI_ghash_insert(objects_parent_root, ob, ob_parent_recurse);
+ base->flag_legacy |= BA_TRANSFORM_LOCKED_IN_PLACE;
}
}
}
@@ -8157,6 +8159,7 @@ static void createTransObject(bContext *C, TransInfo *t)
if (BASE_XFORM_INDIRECT(base_parent) ||
BLI_gset_haskey(objects_in_transdata, ob->parent)) {
trans_obchild_in_obmode_ensure_object(tdo, ob, NULL, OB_SKIP_CHILD_PARENT_IS_XFORM);
+ base->flag_legacy |= BA_TRANSFORM_LOCKED_IN_PLACE;
}
else {
Object *ob_parent_recurse = BLI_ghash_lookup(objects_parent_root, ob->parent);