Fix collision check for rectangles and rendering of binding area (#2221)

This commit is contained in:
Michal Srb 2020-10-11 09:46:13 +03:00 committed by GitHub
parent 3835fa60e4
commit 8a10f2a0b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 6 deletions

View File

@ -199,11 +199,10 @@ const distanceToRectangle = (
point: Point,
): number => {
const [, pointRel, hwidth, hheight] = pointRelativeToElement(element, point);
const nearSide =
GAPoint.distanceToLine(pointRel, GALine.vector(hwidth, hheight)) > 0
? GALine.equation(0, 1, -hheight)
: GALine.equation(1, 0, -hwidth);
return GAPoint.distanceToLine(pointRel, nearSide);
return Math.max(
GAPoint.distanceToLine(pointRel, GALine.equation(0, 1, -hheight)),
GAPoint.distanceToLine(pointRel, GALine.equation(1, 0, -hwidth)),
);
};
const distanceToDiamond = (

View File

@ -679,7 +679,7 @@ const renderBindingHighlightForBindableElement = (
const strokeOffset = 4;
context.strokeStyle = "rgba(0,0,0,.05)";
context.lineWidth = threshold - strokeOffset;
const padding = strokeOffset + threshold / 2;
const padding = strokeOffset / 2 + threshold / 2;
switch (element.type) {
case "rectangle":