From c32453018bb0ce70bc8c3bf912053ddc2cdf8859 Mon Sep 17 00:00:00 2001 From: claudi Date: Wed, 18 Feb 2026 08:06:11 +0100 Subject: [PATCH] feat: Improve dragstart handler installation with retry logic for Angular handlers --- src/webdrop_bridge/ui/bridge_script_intercept.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/webdrop_bridge/ui/bridge_script_intercept.js b/src/webdrop_bridge/ui/bridge_script_intercept.js index d249a83..6f627aa 100644 --- a/src/webdrop_bridge/ui/bridge_script_intercept.js +++ b/src/webdrop_bridge/ui/bridge_script_intercept.js @@ -65,9 +65,15 @@ // PART 3: Install OUR dragstart handler in capture phase // ============================================================================ - setTimeout(function() { + function installDragHandler() { console.log('[Intercept] Installing dragstart handler, have', angularDragHandlers.length, 'Angular handlers'); + if (angularDragHandlers.length === 0) { + console.warn('[Intercept] No Angular handlers found yet, will retry in 1s...'); + setTimeout(installDragHandler, 1000); + return; + } + // Stop intercepting addEventListener listenerPatchActive = false; @@ -124,7 +130,11 @@ }, true); // Capture phase console.log('[Intercept] dragstart handler installed ✓'); - }, 1500); // Wait for Angular to register its listeners + } + + // Wait for Angular to register its listeners, then install our handler + // Start checking after 2 seconds (give Angular time to load on first page load) + setTimeout(installDragHandler, 2000); // ============================================================================ // PART 3: QWebChannel connection