Function: x-dnd-handle-offix
x-dnd-handle-offix is a byte-compiled function defined in x-dnd.el.gz.
Signature
(x-dnd-handle-offix EVENT FRAME WINDOW MESSAGE-ATOM FORMAT DATA)
Documentation
Handle OffiX drop event EVENT.
FRAME is the frame where the drop happened.
WINDOW is the window where the drop happened.
_MESSAGE-ATOM and _FORMAT are unused.
DATA is the vector containing the contents of the client
message (format 32) that caused EVENT to be generated.
Source Code
;; Defined in /usr/src/emacs/lisp/x-dnd.el.gz
(defun x-dnd-handle-offix (event frame window _message-atom _format data)
"Handle OffiX drop event EVENT.
FRAME is the frame where the drop happened.
WINDOW is the window where the drop happened.
_MESSAGE-ATOM and _FORMAT are unused.
DATA is the vector containing the contents of the client
message (format 32) that caused EVENT to be generated."
(let ((type (cdr (assq (aref data 0) x-dnd-offix-id-to-name)))
(data (x-window-property "_DND_SELECTION" frame nil 0 t)))
;; First save state.
(x-dnd-save-state window nil nil (vector type) nil)
;; Now call the test function to decide what action to perform.
(x-dnd-maybe-call-test-function window 'private)
(unwind-protect
(when (windowp window)
(select-window window))
(x-dnd-drop-data event frame window data
(symbol-name type))
(x-dnd-forget-drop window))))