branch: elpa/markdown-mode commit 0a522bf682c977b39f449b0edc63ebf1db14aa04 Merge: f945f12d51 8f76852024 Author: Shohei YOSHIDA <syo...@gmail.com> Commit: GitHub <nore...@github.com>
Merge pull request #884 from jrblevin/support-dnd-windows Support D&D for Windows and multiple D&D --- CHANGES.md | 1 + markdown-mode.el | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index e3131f5d50..1a5c2326ad 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,6 +8,7 @@ * Bug fixes: * Improvements: + - Support drag and drop features on Windows and multiple files' drag and drop # Markdown Mode 2.7 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)