diff --git a/build-plugin.sh b/build-plugin.sh index 4914500..22d20de 100755 --- a/build-plugin.sh +++ b/build-plugin.sh @@ -2,7 +2,7 @@ set -eu PLUGIN="u-navigator" -VERSION="0.2.5" +VERSION="0.2.6" PKG_DIR="packages" WORK_DIR=".plugin-build" PKG_NAME="${PLUGIN}-${VERSION}.tgz" diff --git a/packages/u-navigator-0.2.5.tgz b/packages/u-navigator-0.2.5.tgz deleted file mode 100644 index 24e7ede..0000000 Binary files a/packages/u-navigator-0.2.5.tgz and /dev/null differ diff --git a/packages/u-navigator-0.2.6.tgz b/packages/u-navigator-0.2.6.tgz new file mode 100644 index 0000000..8b44fdc Binary files /dev/null and b/packages/u-navigator-0.2.6.tgz differ diff --git a/server/public/app.js b/server/public/app.js index d85116f..207e6a3 100644 --- a/server/public/app.js +++ b/server/public/app.js @@ -151,14 +151,16 @@ function renderWindow(win) { if (win.kind === 'explorer') renderExplorer(body, win); if (win.kind === 'properties') renderProperties(body); if (win.kind === 'queue') renderQueue(body); - body.scrollTop = win.data.scrollTop || 0; - body.scrollLeft = win.data.scrollLeft || 0; body.addEventListener('scroll', () => { win.data.scrollTop = body.scrollTop; win.data.scrollLeft = body.scrollLeft; }); el.append(titlebar, body); + requestAnimationFrame(() => { + body.scrollTop = win.data.scrollTop || 0; + body.scrollLeft = win.data.scrollLeft || 0; + }); if (!win.maximized) { const resize = document.createElement('div'); resize.className = 'resize-handle'; @@ -462,12 +464,35 @@ function selectEntry(win, entry) { win.data.selectedPath = entry.path; state.selectedEntry = entry; focusWindow(win); - render(); + updateSelectedRows(); + updatePropertiesWindows(); } function focusWindow(win) { state.focusedId = win.id; win.zIndex = ++state.zIndex; + for (const windowEl of workspace.querySelectorAll('.window')) { + windowEl.classList.toggle('focused', windowEl.dataset.windowId === win.id); + } + const current = workspace.querySelector(`.window[data-window-id="${win.id}"]`); + if (current) { + current.style.zIndex = win.zIndex; + } +} + +function updateSelectedRows() { + for (const row of workspace.querySelectorAll('.file-row')) { + row.classList.toggle('selected', row.dataset.path === state.selectedEntry?.path); + } +} + +function updatePropertiesWindows() { + for (const win of state.windows.filter((item) => item.kind === 'properties')) { + const body = workspace.querySelector(`.window[data-window-id="${win.id}"] .window-body`); + if (body) { + renderProperties(body); + } + } } function startDragWindow(event, win) { diff --git a/u-navigator.plg b/u-navigator.plg index b3b5353..2bd0f56 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; -41311370d7a9df875faf70da6b5a7ded +56421a769bd45a076d4d38f3e70aa90e