Hi, I would have suggested to use `dired-mode-hook' to reset the dnd variables to their standard values. But this won't work because the DND setup is done after running the hooks in `dired-mode'. I think it is reasonable that a user prefers to have the default drop behavior in dired. Shouldn't we have an option for this? I'd suggest the following patch. Okay to install? 2005-05-10 Reiner Steib * dired.el (dired-dnd-protocol-alist): New variable. (dired-mode): Use `dired-dnd-protocol-alist'. --8<---------------cut here---------------start------------->8--- --- dired.el 12 Apr 2005 11:50:24 +0200 1.307 +++ dired.el 10 May 2005 11:36:53 +0200 @@ -200,6 +200,18 @@ ;; 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 @@ '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)) ;; Idiosyncratic dired commands that don't deal with marks. --8<---------------cut here---------------end--------------->8---