From d611d67ff11f467a25b7312fd7b4d3888a19e805 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 16 Sep 2026 15:05:25 +0200 Subject: [PATCH] ui: 500ms reveal triggers on hovering a resize handle, not the whole window --- src/ui.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ui.tsx b/src/ui.tsx index 0d4a0ec..d56d01b 100644 --- a/src/ui.tsx +++ b/src/ui.tsx @@ -283,13 +283,17 @@ function Plugin () { const [rootHover, setRootHover] = useState(false) const [hoveredHandle, setHoveredHandle] = useState(null) const [handlesShown, setHandlesShown] = useState(false) + // Reveal the handles only after the cursor has dwelt on a resize area for 500ms. + // Once revealed they stay visible while the cursor remains in the window (so moving + // between handles doesn't re-trigger the delay); they hide only when leaving the window. useEffect(function () { - if (rootHover) { + if (hoveredHandle !== null) { const t = setTimeout(function () { setHandlesShown(true) }, 500) return function () { clearTimeout(t) } + } else if (!rootHover) { + setHandlesShown(false) } - setHandlesShown(false) - }, [rootHover]) + }, [hoveredHandle, rootHover]) function hitboxStyle (dir: string, pos: { [k: string]: number | string }) { const active = hoveredHandle === dir return {