branch: elpa/markdown-mode
commit 814556ababc2b74e1e9603afdbd1b701e09e70a0
Author: Shohei YOSHIDA <syo...@gmail.com>
Commit: Shohei YOSHIDA <syo...@gmail.com>

    Support D&D for Windows and multiple D&D
---
 markdown-mode.el | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/markdown-mode.el b/markdown-mode.el
index 18fadee8ae..a914eb3741 100644
--- a/markdown-mode.el
+++ b/markdown-mode.el
@@ -10132,6 +10132,15 @@ rows and columns and the column alignment."
         (markdown-insert-inline-image link-text file)
       (markdown-insert-inline-link link-text file))))
 
+(defun markdown--dnd-multi-local-file-handler (urls action)
+  (let ((multile-urls-p (> (length urls) 1)))
+    (dolist (url urls)
+      (markdown--dnd-local-file-handler url action)
+      (when multile-urls-p
+        (insert " ")))))
+
+(put 'markdown--dnd-multi-local-file-handler 'dnd-multiple-handler t)
+
 
 ;;; Mode Definition  ==========================================================
 
@@ -10261,8 +10270,14 @@ rows and columns and the column alignment."
             #'markdown--inhibit-electric-quote nil :local)
 
   ;; drag and drop handler
-  (setq-local dnd-protocol-alist  (cons '("^file:///" . 
markdown--dnd-local-file-handler)
-                                        dnd-protocol-alist))
+  (let ((dnd-handler (if (>= emacs-major-version 30)
+                         #'markdown--dnd-multi-local-file-handler
+                       #'markdown--dnd-local-file-handler)))
+    (setq-local dnd-protocol-alist (append
+                                    (list (cons "^file:///" dnd-handler)
+                                          (cons "^file:/[^/]" dnd-handler)
+                                          (cons "^file:[^/]" dnd-handler))
+                                    dnd-protocol-alist)))
 
   ;; media handler
   (when (version< "29" emacs-version)

Reply via email to