diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-11-10 08:22:35 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2020-12-02 10:31:42 +0300 |
commit | 19b85c5f4b0e937f231b86a5788cfaea5a27e26f (patch) | |
tree | 14c613dbb6afdd0f42cf0842583907d438078d15 /source | |
parent | 22c0555cc55a8581fb427aa1b14dbc0f06e77bae (diff) |
Fix T65585: Knife fails when cursor away from the object
Zeroed mouse coordinates were being used making projection fail.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/mesh/editmesh_knife.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c index 5f5599b53df..d0df79beb91 100644 --- a/source/blender/editors/mesh/editmesh_knife.c +++ b/source/blender/editors/mesh/editmesh_knife.c @@ -1895,8 +1895,15 @@ static BMFace *knife_find_closest_face(KnifeTool_OpData *kcd, if (!f) { if (kcd->is_interactive) { - /* try to use backbuffer selection method if ray casting failed */ - f = EDBM_face_find_nearest(&kcd->vc, &dist); + /* Try to use back-buffer selection method if ray casting failed. + * + * Apply the mouse coordinates to a copy of the view-context + * since we don't want to rely on this being set elsewhere. */ + ViewContext vc = kcd->vc; + vc.mval[0] = (int)kcd->curr.mval[0]; + vc.mval[1] = (int)kcd->curr.mval[1]; + + f = EDBM_face_find_nearest(&vc, &dist); /* cheat for now; just put in the origin instead * of a true coordinate on the face. |