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