From f5d28c403cfc4154a0878814149ab70d323d6e5d Mon Sep 17 00:00:00 2001 From: Mikei386 <44135113+Mikei386@users.noreply.github.com> Date: Mon, 22 Jun 2026 23:10:53 +0200 Subject: [PATCH] Lock explorer scroll during selection --- build-plugin.sh | 2 +- packages/u-navigator-0.2.6.tgz | Bin 11176 -> 0 bytes packages/u-navigator-0.2.7.tgz | Bin 0 -> 11368 bytes server/public/app.js | 41 +++++++++++++++++++++++++++++++-- u-navigator.plg | 4 ++-- 5 files changed, 42 insertions(+), 5 deletions(-) delete mode 100644 packages/u-navigator-0.2.6.tgz create mode 100644 packages/u-navigator-0.2.7.tgz diff --git a/build-plugin.sh b/build-plugin.sh index 22d20de..5281a74 100755 --- a/build-plugin.sh +++ b/build-plugin.sh @@ -2,7 +2,7 @@ set -eu PLUGIN="u-navigator" -VERSION="0.2.6" +VERSION="0.2.7" PKG_DIR="packages" WORK_DIR=".plugin-build" PKG_NAME="${PLUGIN}-${VERSION}.tgz" diff --git a/packages/u-navigator-0.2.6.tgz b/packages/u-navigator-0.2.6.tgz deleted file mode 100644 index 8b44fdc92d37a743b4d9146bd89bf0c0df724372..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11176 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 literal 0 HcmV?d00001 diff --git a/server/public/app.js b/server/public/app.js index 207e6a3..c867baf 100644 --- a/server/public/app.js +++ b/server/public/app.js @@ -152,6 +152,11 @@ function renderWindow(win) { if (win.kind === 'properties') renderProperties(body); if (win.kind === 'queue') renderQueue(body); body.addEventListener('scroll', () => { + if (win.data.lockScroll) { + body.scrollTop = win.data.lockScrollTop || 0; + body.scrollLeft = win.data.lockScrollLeft || 0; + return; + } win.data.scrollTop = body.scrollTop; win.data.scrollLeft = body.scrollLeft; }); @@ -214,7 +219,8 @@ function renderExplorer(body, win) { for (const row of body.querySelectorAll('.file-row')) { const entry = data.entries.find((item) => item.path === row.dataset.path); - row.addEventListener('click', () => selectEntry(win, entry)); + row.addEventListener('pointerdown', () => lockExplorerScroll(win, body)); + row.addEventListener('click', () => selectEntry(win, entry, body)); row.addEventListener('dblclick', () => { if (entry.type === 'directory') { loadExplorer(win, entry.path); @@ -460,12 +466,13 @@ async function pollJob(id) { } } -function selectEntry(win, entry) { +function selectEntry(win, entry, scrollBody = null) { win.data.selectedPath = entry.path; state.selectedEntry = entry; focusWindow(win); updateSelectedRows(); updatePropertiesWindows(); + restoreExplorerScroll(win, scrollBody); } function focusWindow(win) { @@ -495,6 +502,36 @@ function updatePropertiesWindows() { } } +function lockExplorerScroll(win, body) { + win.data.lockScroll = true; + win.data.lockScrollTop = body.scrollTop; + win.data.lockScrollLeft = body.scrollLeft; +} + +function restoreExplorerScroll(win, body) { + if (!body) { + body = workspace.querySelector(`.window[data-window-id="${win.id}"] .window-body`); + } + if (!body) return; + + const top = win.data.lockScrollTop ?? win.data.scrollTop ?? 0; + const left = win.data.lockScrollLeft ?? win.data.scrollLeft ?? 0; + const restore = () => { + body.scrollTop = top; + body.scrollLeft = left; + }; + + restore(); + requestAnimationFrame(restore); + setTimeout(restore, 0); + setTimeout(() => { + restore(); + win.data.lockScroll = false; + win.data.scrollTop = body.scrollTop; + win.data.scrollLeft = body.scrollLeft; + }, 120); +} + function startDragWindow(event, win) { if (event.target.closest('button') || win.maximized) return; event.preventDefault(); diff --git a/u-navigator.plg b/u-navigator.plg index 2bd0f56..16b2408 100644 --- a/u-navigator.plg +++ b/u-navigator.plg @@ -1,7 +1,7 @@ - + ]> @@ -14,7 +14,7 @@ https://git.casaderoll.de/michael/Unraid-Navigator/raw/branch/main/packages/&package; -56421a769bd45a076d4d38f3e70aa90e +c22b248a40a369a93ef58126e72fe823