Function: x-dnd-xm-read-targets

x-dnd-xm-read-targets is a byte-compiled function defined in x-dnd.el.gz.

Signature

(x-dnd-xm-read-targets FRAME WINDOW SELECTION)

Documentation

Read targets of SELECTION on FRAME from the targets table.

WINDOW should be the drag-and-drop operation's initiator. Return a vector of atoms containing the selection targets.

Source Code

;; Defined in /usr/src/emacs/lisp/x-dnd.el.gz
(defun x-dnd-xm-read-targets (frame window selection)
  "Read targets of SELECTION on FRAME from the targets table.
WINDOW should be the drag-and-drop operation's initiator.
Return a vector of atoms containing the selection targets."
  (let* ((targets-table (x-dnd-xm-read-targets-table frame))
         (initiator-info (x-window-property selection frame
                                            "_MOTIF_DRAG_INITIATOR_INFO"
                                            window nil nil))
         (byte-order (aref initiator-info 0))
         (idx (x-dnd-get-motif-value initiator-info
                                     2 2 byte-order))
         (vector (aref targets-table idx))
         (i 0))
    (prog1 vector
      (while (< i (length vector))
        (aset vector i
              (intern (x-get-atom-name (aref vector i))))
        (setq i (1+ i))))))