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>2020-11-10 08:22:35 +0300
committerJeroen Bakker <jeroen@blender.org>2020-12-02 10:31:42 +0300
commit19b85c5f4b0e937f231b86a5788cfaea5a27e26f (patch)
tree14c613dbb6afdd0f42cf0842583907d438078d15
parent22c0555cc55a8581fb427aa1b14dbc0f06e77bae (diff)
Fix T65585: Knife fails when cursor away from the object
Zeroed mouse coordinates were being used making projection fail.
-rw-r--r--source/blender/editors/mesh/editmesh_knife.c11
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.