elisp: Drag and Drop
28.20 Drag and Drop
===================
When a user drags something from another application over Emacs, that
other application expects Emacs to tell it if Emacs can handle the data
that is dragged. The variable ‘x-dnd-test-function’ is used by Emacs to
determine what to reply. The default value is
‘x-dnd-default-test-function’ which accepts drops if the type of the
data to be dropped is present in ‘x-dnd-known-types’. You can customize
‘x-dnd-test-function’ and/or ‘x-dnd-known-types’ if you want Emacs to
accept or reject drops based on some other criteria.
If you want to change the way Emacs handles drop of different types
or add a new type, customize ‘x-dnd-types-alist’. This requires
detailed knowledge of what types other applications use for drag and
drop.
When an URL is dropped on Emacs it may be a file, but it may also be
another URL type (ftp, http, etc.). Emacs first checks
‘dnd-protocol-alist’ to determine what to do with the URL. If there is
no match there and if ‘browse-url-browser-function’ is an alist, Emacs
looks for a match there. If no match is found the text for the URL is
inserted. If you want to alter Emacs behavior, you can customize these
variables.