From f96a8b664f0f51b1920ab760038a42d31caa0efa Mon Sep 17 00:00:00 2001 From: NineKey Date: Sat, 12 Sep 2026 23:39:15 +0800 Subject: [PATCH] Keep tag menu open while scrolling --- web/dynamic_loader.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/web/dynamic_loader.js b/web/dynamic_loader.js index fec4c3e..2ce0442 100644 --- a/web/dynamic_loader.js +++ b/web/dynamic_loader.js @@ -187,11 +187,14 @@ app.registerExtension({ if (!menu.hidden && !composer.contains(event.target) && !menu.contains(event.target)) closeMenu(); }; const closeMenuForCanvasChange = () => closeMenu(); + const closeMenuForPageScroll = event => { + if (event.target !== menu) closeMenu(); + }; const canvasElement = app.canvas?.canvas; document.addEventListener("pointerdown", closeMenuOutside, true); window.addEventListener("blur", closeMenuForCanvasChange); window.addEventListener("resize", closeMenuForCanvasChange); - window.addEventListener("scroll", closeMenuForCanvasChange, true); + window.addEventListener("scroll", closeMenuForPageScroll, true); canvasElement?.addEventListener("wheel", closeMenuForCanvasChange, { passive: true }); const insertTagFromMenu = (entry) => { const trigger = getTrigger(); @@ -732,7 +735,7 @@ app.registerExtension({ document.removeEventListener("pointerdown", closeMenuOutside, true); window.removeEventListener("blur", closeMenuForCanvasChange); window.removeEventListener("resize", closeMenuForCanvasChange); - window.removeEventListener("scroll", closeMenuForCanvasChange, true); + window.removeEventListener("scroll", closeMenuForPageScroll, true); canvasElement?.removeEventListener("wheel", closeMenuForCanvasChange); try { exTagCompleter?.destroy?.(); } catch { /* optional integration */ } exTagCompleter = null;