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
This commit is contained in:
Harley Acheson 2019-09-02 13:06:42 -07:00
parent 47cde3292c
commit d4a905fd85
4 changed files with 11 additions and 7 deletions

@ -1 +1 @@
Subproject commit 61cb42387d1356c168d0e89acaef44a5e365520a
Subproject commit e7cd12454a2fe775361012cbc176fb9c370b6abb

@ -1 +1 @@
Subproject commit cbb11b1a597366deabfa1cac11989621bf9075c4
Subproject commit db4f7e2dc66d437b205f8097c2bdf9097b5c8834

@ -1 +1 @@
Subproject commit e479f81053badb6548ca9cb8a6f2b22e0a242cb7
Subproject commit c6429b8c79e877ac40fa900c589be2dc6aa4f512

View File

@ -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;
}
}