From d4a905fd853d91db2ce7a02de09bf5e255838cb8 Mon Sep 17 00:00:00 2001 From: Harley Acheson Date: Mon, 2 Sep 2019 13:06:42 -0700 Subject: UI: Fix Bug With Join Area Tolerance Join area tolerance not properly checking all vertices on shared edge. Differential Revision: https://developer.blender.org/D5662 --- source/blender/editors/screen/screen_edit.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'source/blender/editors/screen/screen_edit.c') diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 525b73dd71b..b37aa47aba6 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -309,22 +309,26 @@ int area_getorientation(ScrArea *sa, ScrArea *sb) int tolerance = U.pixelsize * 4; if (saBL->vec.x == sbBR->vec.x && saTL->vec.x == sbTR->vec.x) { /* sa to right of sb = W */ - if (ABS(saBL->vec.y - sbBR->vec.y) <= tolerance) { + if ((ABS(saBL->vec.y - sbBR->vec.y) <= tolerance) && + (ABS(saTL->vec.y - sbTR->vec.y) <= tolerance)) { return 0; } } else if (saTL->vec.y == sbBL->vec.y && saTR->vec.y == sbBR->vec.y) { /* sa to bottom of sb = N */ - if (ABS(saTL->vec.x - sbBL->vec.x) <= tolerance) { + if ((ABS(saTL->vec.x - sbBL->vec.x) <= tolerance) && + (ABS(saTR->vec.x - sbBR->vec.x) <= tolerance)) { return 1; } } else if (saTR->vec.x == sbTL->vec.x && saBR->vec.x == sbBL->vec.x) { /* sa to left of sb = E */ - if (ABS(saTR->vec.y - sbTL->vec.y) <= tolerance) { + if ((ABS(saTR->vec.y - sbTL->vec.y) <= tolerance) && + (ABS(saBR->vec.y - sbBL->vec.y) <= tolerance)) { return 2; } } else if (saBL->vec.y == sbTL->vec.y && saBR->vec.y == sbTR->vec.y) { /* sa on top of sb = S*/ - if (ABS(saBL->vec.x - sbTL->vec.x) <= tolerance) { + if ((ABS(saBL->vec.x - sbTL->vec.x) <= tolerance) && + (ABS(saBR->vec.x - sbTR->vec.x) <= tolerance)) { return 3; } } -- cgit v1.2.3