diff options
author | Falk David <falkdavid@gmx.de> | 2021-04-28 17:20:09 +0300 |
---|---|---|
committer | Falk David <falkdavid@gmx.de> | 2021-04-28 17:28:23 +0300 |
commit | e0fa295bc6f2f99f5679a4d423818d83c67628a2 (patch) | |
tree | 18fd5d55c72c9ea77fc50c3eef018ab7924806a3 /source/blender/editors/transform/transform_convert_gpencil.c | |
parent | c4bebc03e0e7af0b6fe31c9751b81635645bd547 (diff) |
Fix T86881: Curve Edit handle offset when snapping
When an aligned (or auto) handle was snapped with only the control
point selected, it would not snap to the correct point, but offset. This
was because the handles were not considered selected. The `TD_SELECTED`
flag was not being set.
The fix makes sure that we include the handles in the selection when
the handle is aligned or auto.
Reviewed By: antoniov
Maniphest Tasks: T86881
Differential Revision: https://developer.blender.org/D11111
Diffstat (limited to 'source/blender/editors/transform/transform_convert_gpencil.c')
-rw-r--r-- | source/blender/editors/transform/transform_convert_gpencil.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/source/blender/editors/transform/transform_convert_gpencil.c b/source/blender/editors/transform/transform_convert_gpencil.c index 45df0e66691..4932a5f8d23 100644 --- a/source/blender/editors/transform/transform_convert_gpencil.c +++ b/source/blender/editors/transform/transform_convert_gpencil.c @@ -78,14 +78,12 @@ static short get_bezt_sel_triple_flag(BezTriple *bezt, const bool handles_visibl flag = ((bezt->f1 & SELECT) ? SEL_F1 : 0) | ((bezt->f2 & SELECT) ? SEL_F2 : 0) | ((bezt->f3 & SELECT) ? SEL_F3 : 0); } - else { - if (bezt->f2 & SELECT) { - flag = SEL_ALL; - } + else if (bezt->f2 & SELECT) { + flag = SEL_ALL; } /* Special case for auto & aligned handles */ - if (flag != SEL_ALL && flag & SEL_F2) { + if ((flag != SEL_ALL) && (flag & SEL_F2)) { if (ELEM(bezt->h1, HD_AUTO, HD_ALIGN) && ELEM(bezt->h2, HD_AUTO, HD_ALIGN)) { flag = SEL_ALL; } @@ -316,7 +314,7 @@ static void createTransGPencil_curves(bContext *C, } } else if (handles_visible) { - if (BEZT_ISSEL_IDX(bezt, j)) { + if (sel) { td->flag = TD_SELECTED; } else { |