From 9ac29437d84e08e6db6055c8f51abe389ef9f38e Mon Sep 17 00:00:00 2001 From: brahim <92426196+BrhmDev@users.noreply.github.com> Date: Mon, 23 Sep 2024 17:15:09 +0200 Subject: [PATCH 1/2] Fix rightside sidebar not always staying open when overshooting mouse. --- src/ZenCompactMode.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ZenCompactMode.mjs b/src/ZenCompactMode.mjs index 17d628f..8284d6f 100644 --- a/src/ZenCompactMode.mjs +++ b/src/ZenCompactMode.mjs @@ -219,9 +219,9 @@ var gZenCompactModeManager = { }, _getCrossedEdge(posX, posY, element = document.documentElement, maxDistance = 10) { - posX = Math.max(0, posX); - posY = Math.max(0, posY); const targetBox = element.getBoundingClientRect(); + posX = Math.max(0, Math.min(posX, targetBox["right"])); + posY = Math.max(0, Math.min(posY, targetBox["bottom"])); return ["top", "bottom", "left", "right"].find((edge, i) => { const distance = Math.abs((i < 2 ? posY : posX) - targetBox[edge]); return distance <= maxDistance; From 3cb4bb194f26755bc31a4d6a03db2f5b1b8071aa Mon Sep 17 00:00:00 2001 From: brahim <92426196+BrhmDev@users.noreply.github.com> Date: Mon, 23 Sep 2024 17:38:53 +0200 Subject: [PATCH 2/2] Make gZenCompactModeManager._getCrossedEdge work with any element. --- src/ZenCompactMode.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ZenCompactMode.mjs b/src/ZenCompactMode.mjs index 8284d6f..546013e 100644 --- a/src/ZenCompactMode.mjs +++ b/src/ZenCompactMode.mjs @@ -220,8 +220,8 @@ var gZenCompactModeManager = { _getCrossedEdge(posX, posY, element = document.documentElement, maxDistance = 10) { const targetBox = element.getBoundingClientRect(); - posX = Math.max(0, Math.min(posX, targetBox["right"])); - posY = Math.max(0, Math.min(posY, targetBox["bottom"])); + posX = Math.max(targetBox.left, Math.min(posX, targetBox.right)); + posY = Math.max(targetBox.top, Math.min(posY, targetBox.bottom)); return ["top", "bottom", "left", "right"].find((edge, i) => { const distance = Math.abs((i < 2 ? posY : posX) - targetBox[edge]); return distance <= maxDistance;