From 2cf7f24afc3a113eedbb360562ea9da6198b985b Mon Sep 17 00:00:00 2001 From: pewdiepie-archdaemon Date: Sun, 28 Jun 2026 11:26:45 +0000 Subject: [PATCH] Keep PDF annotation controls hoverable --- static/js/document.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/static/js/document.js b/static/js/document.js index d2c3584ec..7d7dd7c67 100644 --- a/static/js/document.js +++ b/static/js/document.js @@ -1111,7 +1111,7 @@ import * as Modals from './modalManager.js'; if (_pdfPaneProximityWired || !pane) return; _pdfPaneProximityWired = true; let raf = 0; - const buffer = 30; + const buffer = 44; pane.addEventListener('mousemove', (ev) => { if (raf) return; raf = requestAnimationFrame(() => { @@ -1469,7 +1469,12 @@ import * as Modals from './modalManager.js'; }; if (!_isTouch) { wrap.addEventListener('mouseenter', () => _setHandlesVisible(true)); - wrap.addEventListener('mouseleave', () => _setHandlesVisible(false)); + // Handles intentionally sit outside the annotation rectangle. Hiding on + // wrap mouseleave makes them disappear while moving toward those controls; + // pane-level proximity below owns hiding once the cursor is genuinely away. + for (const h of [del, grip, resize, menuBtn].filter(Boolean)) { + h.addEventListener('mouseenter', () => _setHandlesVisible(true)); + } } wrap.addEventListener('pointerdown', (ev) => { if (ev.target === del || ev.target === grip || ev.target === resize || ev.target === menuBtn) return;