From 3da13f0cc912acb37052ff4416f238e714bd2a57 Mon Sep 17 00:00:00 2001
From: missionfloyd <missionfloyd@users.noreply.github.com>
Date: Sat, 16 Mar 2024 15:46:29 -0600
Subject: [PATCH] Fix dragging to/from firefox

---
 javascript/dragdrop.js | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/javascript/dragdrop.js b/javascript/dragdrop.js
index 01ae6e4db..bb7be89f9 100644
--- a/javascript/dragdrop.js
+++ b/javascript/dragdrop.js
@@ -57,7 +57,7 @@ function eventHasFiles(e) {
 }
 
 function getEventUrl(e) {
-    return e?.dataTransfer?.getData('URL') || e?.dataTransfer?.getData('text/html')?.match(/(?:src|href)=["'](.*?)["']/)?.[1];
+    return e.dataTransfer?.getData('text/uri-list') || e.dataTransfer?.getData('text/plain');
 }
 
 function dragDropTargetIsPrompt(target) {
@@ -96,13 +96,12 @@ window.document.addEventListener('drop', e => {
         const files = e.dataTransfer.files;
         const fileInput = imgParent.querySelector('input[type="file"]');
         const urlInput = urlParent.querySelector('textarea');
-        if (files && fileInput) {
-            fileInput.files = files;
-            fileInput.dispatchEvent(new Event('change'));
-        }
         if (url && urlInput) {
             urlInput.value = url;
             urlInput.dispatchEvent(new Event('input'));
+        } else if (files && fileInput) {
+            fileInput.files = files;
+            fileInput.dispatchEvent(new Event('change'));
         }
     }