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
path: root/source
diff options
context:
space:
mode:
authorGermano Cavalcante <germano.costa@ig.com.br>2022-03-28 19:40:28 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2022-03-28 19:55:13 +0300
commit39df927b4a7617e8ec7668d1ddfc878c43642599 (patch)
tree8fd1e429f023813fc54efa021da6324293f45a25 /source
parent4c66021ccc94ad0d53418c007d3b3a4f9382415b (diff)
Transform: Improve 'absolute grid snap' support detection
The solution supposedly listed all cases that `absolute grid snapping` was supported. But it ignored some occasions like: Editing Surface objects, Texture Space. List now only the cases where this feature should not be supported.
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/transform/transform_convert_object_texspace.c2
-rw-r--r--source/blender/editors/transform/transform_snap.c26
2 files changed, 13 insertions, 15 deletions
diff --git a/source/blender/editors/transform/transform_convert_object_texspace.c b/source/blender/editors/transform/transform_convert_object_texspace.c
index 763af1f3384..1f58ec80f02 100644
--- a/source/blender/editors/transform/transform_convert_object_texspace.c
+++ b/source/blender/editors/transform/transform_convert_object_texspace.c
@@ -63,7 +63,6 @@ void createTransTexspace(TransInfo *t)
}
td->flag = TD_SELECTED;
- copy_v3_v3(td->center, ob->obmat[3]);
td->ob = ob;
copy_m3_m4(td->mtx, ob->obmat);
@@ -77,6 +76,7 @@ void createTransTexspace(TransInfo *t)
}
copy_v3_v3(td->iloc, td->loc);
+ copy_v3_v3(td->center, td->loc);
copy_v3_v3(td->ext->isize, td->ext->size);
}
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index fefd8d3a378..23619a2049a 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -598,21 +598,19 @@ static short snap_mode_from_spacetype(TransInfo *t)
return SEQ_tool_settings_snap_mode_get(t->scene);
}
- if ((t->spacetype == SPACE_VIEW3D) && !(t->options & CTX_CAMERA)) {
- /* All obedit types will match. */
- const int obedit_type = t->obedit_type;
- if ((t->options & (CTX_GPENCIL_STROKES | CTX_CURSOR | CTX_OBMODE_XFORM_OBDATA)) ||
- ELEM(obedit_type, OB_MESH, OB_ARMATURE, OB_CURVES_LEGACY, OB_LATTICE, OB_MBALL, -1)) {
- short snap_mode = ts->snap_mode;
- if ((snap_mode & SCE_SNAP_MODE_INCREMENT) && (ts->snap_flag & SCE_SNAP_ABS_GRID) &&
- (t->mode == TFM_TRANSLATION)) {
- /* Special case in which snap to increments is transformed to snap to grid. */
- snap_mode &= ~SCE_SNAP_MODE_INCREMENT;
- snap_mode |= SCE_SNAP_MODE_GRID;
- }
- return snap_mode;
+ if (t->spacetype == SPACE_VIEW3D) {
+ if (t->options & (CTX_CAMERA | CTX_EDGE_DATA | CTX_PAINT_CURVE)) {
+ return SCE_SNAP_MODE_INCREMENT;
}
- return SCE_SNAP_MODE_INCREMENT;
+
+ short snap_mode = ts->snap_mode;
+ if ((snap_mode & SCE_SNAP_MODE_INCREMENT) && (ts->snap_flag & SCE_SNAP_ABS_GRID) &&
+ (t->mode == TFM_TRANSLATION)) {
+ /* Special case in which snap to increments is transformed to snap to grid. */
+ snap_mode &= ~SCE_SNAP_MODE_INCREMENT;
+ snap_mode |= SCE_SNAP_MODE_GRID;
+ }
+ return snap_mode;
}
if (ELEM(t->spacetype, SPACE_ACTION, SPACE_NLA)) {