diff options
author | Harley Acheson <harley.acheson@gmail.com> | 2019-09-02 23:06:42 +0300 |
---|---|---|
committer | Harley Acheson <harley.acheson@gmail.com> | 2019-09-02 23:06:42 +0300 |
commit | d4a905fd853d91db2ce7a02de09bf5e255838cb8 (patch) | |
tree | b0c5f345030c6315215abaabfea683a0db9e7e2f /source/blender/editors | |
parent | 47cde3292c9276dd612e16278515d7efcfbb822f (diff) |
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
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/screen/screen_edit.c | 12 |
1 files changed, 8 insertions, 4 deletions
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; } } |