[mew-dist 26369] drag & drop on Meadow

INOUE Tomohiro ml at example.com
2005年 5月 28日 (土) 01:26:03 JST


こんにちは、井上と申します。

draft mode での drag & drop によるファイル添付を Meadow でもできるよ
うにしてみました。4.2.51 へのパッチです。
(参考にしたコード: http://www.nijino.com/ari/emacs/gnus.html)

Meadow 以外の環境で試せないので副作用がないか心配ですが、
もし大丈夫そうなら採用していただけると幸いです。

-- 井上

-------------- next part --------------
--- mew-attach.el.orig	2005-05-06 14:54:04.000000000 +0900
+++ mew-attach.el	2005-05-26 19:14:58.452672500 +0900
@@ -745,8 +745,8 @@
 	(cons action type)
       nil)))
 
-(defun mew-draft-dnd-handle-local-file (uri action)
-  (let* ((from (dnd-get-local-file-name uri t))
+(defun mew-draft-dnd-handle-local-file (local-file action)
+  (let* ((from local-file)
 	 (to (file-name-nondirectory from)))
     (when from
       (unless (mew-attach-p)
@@ -768,9 +768,22 @@
 
 (defun mew-draft-dnd-handle-file (uri action)
   (let ((local-file (dnd-get-local-file-uri uri)))
-    (if local-file (mew-draft-dnd-handle-local-file local-file action)
+    (if local-file (mew-draft-dnd-handle-local-file
+		    (dnd-get-local-file-name local-file t) action)
       nil)))
 
+(when (featurep 'meadow)
+  (defun mew-draft-dnd-w32 (event)
+    (interactive "e")
+    (if (eq (posn-window (event-start event)) (selected-window))
+	(dolist (file (car (cdr (cdr event))))
+	  (when (file-regular-p file)
+	    (mew-draft-dnd-handle-local-file file 'copy)))
+      (w32-drag-n-drop event)))
+  (define-key mew-draft-mode-map [drag-n-drop] 'mew-draft-dnd-w32)
+  (define-key mew-draft-header-map [drag-n-drop] 'mew-draft-dnd-w32)
+  (define-key mew-draft-attach-map [drag-n-drop] 'mew-draft-dnd-w32))
+
 (provide 'mew-attach)
 
 ;;; Copyright Notice:


Mew-dist メーリングリストの案内