]> git.eshelyaron.com Git - emacs.git/commitdiff
* dnd.el (dnd-protocol-alist): Improve custom type.
authorReiner Steib <Reiner.Steib@gmx.de>
Wed, 11 May 2005 19:32:51 +0000 (19:32 +0000)
committerReiner Steib <Reiner.Steib@gmx.de>
Wed, 11 May 2005 19:32:51 +0000 (19:32 +0000)
* dired.el (dired-dnd-protocol-alist): New variable.
(dired-mode): Use `dired-dnd-protocol-alist'.  Move call of
`dired-mode-hook' to the end.

lisp/ChangeLog
lisp/dired.el
lisp/dnd.el

index 95b6f0d36053424829f097bdc822d4a1ed275ca3..5a12dd84340377f0ccfd8ae9bd9249c5f95a4a66 100644 (file)
@@ -1,3 +1,11 @@
+2005-05-11  Reiner Steib  <Reiner.Steib@gmx.de>
+
+       * dnd.el (dnd-protocol-alist): Improve custom type.
+
+       * dired.el (dired-dnd-protocol-alist): New variable.
+       (dired-mode): Use `dired-dnd-protocol-alist'.  Move call of
+       `dired-mode-hook' to the end.
+
 2005-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * files.el (executable-find): Move from executable.el. Use locate-file.
index 474b4f3d9b551f96252c3bef25a4f3e1c90087a5..afea6b173a687fcb4875bc92dd79248a577b7ddf 100644 (file)
@@ -200,6 +200,18 @@ with the buffer narrowed to the listing."
 ;; Note this can't simply be run inside function `dired-ls' as the hook
 ;; functions probably depend on the dired-subdir-alist to be OK.
 
+(defcustom dired-dnd-protocol-alist
+  '(("^file:///" . dired-dnd-handle-local-file)
+    ("^file://"  . dired-dnd-handle-file)
+    ("^file:"    . dired-dnd-handle-local-file))
+  "The functions to call when a drop in `dired-mode' is made.
+See `dnd-protocol-alist' for more information.  When nil, behave
+as in other buffers."
+  :type '(choice (repeat (cons (regexp) (function)))
+                (const :tag "Behave as in other buffers" nil))
+  :version "22.1"
+  :group 'dired)
+
 ;; Internal variables
 
 (defvar dired-marker-char ?*           ; the answer is 42
@@ -1522,14 +1534,11 @@ Keybindings:
        'dired-desktop-buffer-misc-data)
   (setq dired-switches-alist nil)
   (dired-sort-other dired-actual-switches t)
-  (run-mode-hooks 'dired-mode-hook)
   (when (featurep 'dnd)
     (make-variable-buffer-local 'dnd-protocol-alist)
     (setq dnd-protocol-alist
-         (append '(("^file:///" . dired-dnd-handle-local-file)
-                   ("^file://"  . dired-dnd-handle-file)
-                   ("^file:"    . dired-dnd-handle-local-file))
-                 dnd-protocol-alist))))
+         (append dired-dnd-protocol-alist dnd-protocol-alist)))
+  (run-mode-hooks 'dired-mode-hook))
 \f
 ;; Idiosyncratic dired commands that don't deal with marks.
 
index b6d4d498c954b0240ea2d2ea51692949bad275b7..927f2e3bdb632d201564201e5ae960a5d8c83bcd 100644 (file)
@@ -55,7 +55,7 @@ If no match is found, the URL is inserted as text by calling `dnd-insert-text'.
 The function shall return the action done (move, copy, link or private)
 if some action was made, or nil if the URL is ignored."
   :version "22.1"
-  :type 'alist
+  :type '(repeat (cons (regexp) (function)))
   :group 'dnd)