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:
authorGermano Cavalcante <germano.costa@ig.com.br>2022-03-28 17:26:48 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2022-03-28 17:26:48 +0300
commit2e99295d5e17b798e0890853b26086e0f33cc407 (patch)
tree9867e14bd35655b1dbcae0e0b80cc7b84c2ff0d0
parente6dfe570cc00fbacf41d66e55fcf2e1b195eb780 (diff)
Fix T96812: Regression: Snapping is broken with proportional editing
This was a mistake in the conditional structure introduced in 4b35d6950d4f This commit also adds a new type of snap exclusion: `SNAP_NOT_EDITED`. Thanks to @Ethan1080 for pointing out the error.
-rw-r--r--source/blender/editors/include/ED_transform_snap_object_context.h5
-rw-r--r--source/blender/editors/transform/transform_snap.c2
-rw-r--r--source/blender/editors/transform/transform_snap_object.c6
3 files changed, 9 insertions, 4 deletions
diff --git a/source/blender/editors/include/ED_transform_snap_object_context.h b/source/blender/editors/include/ED_transform_snap_object_context.h
index fa53e7a76e4..16ec1221eea 100644
--- a/source/blender/editors/include/ED_transform_snap_object_context.h
+++ b/source/blender/editors/include/ED_transform_snap_object_context.h
@@ -29,8 +29,9 @@ typedef enum {
SNAP_ALL = 0,
SNAP_NOT_SELECTED = 1,
SNAP_NOT_ACTIVE = 2,
- SNAP_ONLY_ACTIVE = 3,
- SNAP_SELECTABLE = 4,
+ SNAP_NOT_EDITED = 3,
+ SNAP_ONLY_ACTIVE = 4,
+ SNAP_SELECTABLE = 5,
} eSnapSelect;
typedef enum {
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index bf898b9053f..5e66b8010e4 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -639,7 +639,7 @@ static short snap_select_type_get(TransInfo *t)
if ((obedit_type == OB_MESH) && (t->flag & T_PROP_EDIT)) {
/* Exclude editmesh if using proportional edit */
- r_snap_select = SNAP_NOT_ACTIVE;
+ r_snap_select = SNAP_NOT_EDITED;
}
else if (!t->tsnap.snap_self) {
r_snap_select = SNAP_NOT_ACTIVE;
diff --git a/source/blender/editors/transform/transform_snap_object.c b/source/blender/editors/transform/transform_snap_object.c
index 87053fe03d1..cb06361a62d 100644
--- a/source/blender/editors/transform/transform_snap_object.c
+++ b/source/blender/editors/transform/transform_snap_object.c
@@ -459,7 +459,11 @@ static bool snap_object_is_snappable(const SnapObjectContext *sctx,
}
if (snap_select == SNAP_NOT_ACTIVE) {
- return base_act == base;
+ return base_act != base;
+ }
+
+ if (snap_select == SNAP_NOT_EDITED) {
+ return base->object->mode != OB_MODE_EDIT;
}
if (snap_select == SNAP_NOT_SELECTED) {