diff --git a/build-plugin.sh b/build-plugin.sh index 12e6054..e50a59b 100755 --- a/build-plugin.sh +++ b/build-plugin.sh @@ -2,7 +2,7 @@ set -eu PLUGIN="u-navigator" -VERSION="2026.06.23.r024" +VERSION="2026.06.23.r025" PKG_DIR="packages" WORK_DIR=".plugin-build" PKG_NAME="${PLUGIN}-${VERSION}.tgz" diff --git a/packages/u-navigator-2026.06.23.r024.tgz b/packages/u-navigator-2026.06.23.r024.tgz deleted file mode 100644 index a1aa5a9..0000000 Binary files a/packages/u-navigator-2026.06.23.r024.tgz and /dev/null differ diff --git a/packages/u-navigator-2026.06.23.r025.tgz b/packages/u-navigator-2026.06.23.r025.tgz new file mode 100644 index 0000000..e4b927e Binary files /dev/null and b/packages/u-navigator-2026.06.23.r025.tgz differ diff --git a/server/public/app.js b/server/public/app.js index 3534d0f..e811712 100644 --- a/server/public/app.js +++ b/server/public/app.js @@ -13,6 +13,7 @@ const state = { draggedEntry: null, pointerDrag: null, suppressClickPath: null, + suppressItemActivationUntil: 0, debug: [], nextDebugId: 1, jobs: new Map(), @@ -276,8 +277,12 @@ function renderExplorer(body, win) { lockExplorerScroll(win, body); startItemPointerDrag(event, win, entry); }); - row.addEventListener('click', () => selectEntry(win, entry, body)); + row.addEventListener('click', () => { + if (shouldSuppressItemActivation()) return; + selectEntry(win, entry, body); + }); row.addEventListener('dblclick', () => { + if (shouldSuppressItemActivation()) return; if (entry.type === 'directory') { loadExplorer(win, entry.path); } @@ -785,6 +790,14 @@ function selectEntry(win, entry, scrollBody = null) { restoreExplorerScroll(win, scrollBody); } +function shouldSuppressItemActivation() { + if (Date.now() <= state.suppressItemActivationUntil) { + recordDebug('item.activation.suppressed', { until: state.suppressItemActivationUntil }); + return true; + } + return false; +} + function focusWindow(win) { state.focusedId = win.id; win.zIndex = ++state.zIndex; @@ -879,6 +892,7 @@ async function finishItemPointerDrag(event, move, up) { event.preventDefault(); state.suppressClickPath = drag.path; + state.suppressItemActivationUntil = Date.now() + 450; const target = findPointerDropTarget(event); recordDebug('pointer.finish', { source: drag.path, diff --git a/u-navigator.plg b/u-navigator.plg index 3fd4ecd..92cac47 100644 --- a/u-navigator.plg +++ b/u-navigator.plg @@ -1,7 +1,7 @@ - + @@ -24,7 +24,7 @@ https://git.casaderoll.de/michael/Unraid-Navigator/raw/branch/main/packages/&package; -460c859d05c48638ba4c30e51e040b65 +e5c7cd67da544ca809a683f12093652e