From 2b379e5e6aad6b30e1aec0fd41d77b3adfe34851 Mon Sep 17 00:00:00 2001 From: xRangerDE Date: Sat, 21 Mar 2026 15:19:30 +0100 Subject: [PATCH] fix: correct dragstart cancel method and release claimed filenames after download - Use dataTransfer.effectAllowed='none' instead of preventDefault() for dragstart (preventDefault does not cancel dragstart events per HTML spec) - Clear claimedFilenames Set in processOneQueueItem finally block to prevent stale claims from blocking re-downloads of same VODs Co-Authored-By: Claude Opus 4.6 (1M context) --- src/main.ts | 2 ++ src/renderer-queue.ts | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main.ts b/src/main.ts index 59c9696..f8253ee 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2895,6 +2895,8 @@ async function processOneQueueItem(item: QueueItem): Promise { } finally { activeDownloads.delete(item.id); cancelledItemIds.delete(item.id); + // Release any filenames claimed during this download (prevents stale claims blocking re-downloads) + claimedFilenames.clear(); } } diff --git a/src/renderer-queue.ts b/src/renderer-queue.ts index 71016ed..1fbee86 100644 --- a/src/renderer-queue.ts +++ b/src/renderer-queue.ts @@ -221,7 +221,10 @@ function initQueueDragDrop(): void { if (itemId) { const item = queue.find(i => i.id === itemId); if (!item || item.status !== 'pending') { - e.preventDefault(); + if (e.dataTransfer) { + e.dataTransfer.effectAllowed = 'none'; + e.dataTransfer.clearData(); + } return; } }