summaryrefslogtreecommitdiff
path: root/lisp/select.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2014-10-02 22:15:42 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2014-10-02 22:15:42 -0400
commit7118822435bafe077c73b026e9e463a10e96f09a (patch)
tree6f788e7868617f0e9b787acc15e8779fcbcf20f8 /lisp/select.el
parentd6f8fef3fc17187687fafce50b428f88a278aee9 (diff)
downloademacs-7118822435bafe077c73b026e9e463a10e96f09a.tar.gz
* lisp/select.el: Add commentary discussion.
Diffstat (limited to 'lisp/select.el')
-rw-r--r--lisp/select.el25
1 files changed, 25 insertions, 0 deletions
diff --git a/lisp/select.el b/lisp/select.el
index 9e48cc0b432..65c693eb424 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -24,6 +24,31 @@
;; Based partially on earlier release by Lucid.
+;; The functionality here is pretty messy, because there are different
+;; functions that claim to get or set the "selection", with no clear
+;; distinction between them. Here's my best understanding of it:
+;; - gui-select-text and gui-selection-value go together to access the general
+;; notion of "GUI selection" for interoperation with other applications.
+;; This can use either the clipboard or the primary selection, or both or
+;; none according to gui-select-enable-clipboard and x-select-enable-primary.
+;; These are the default values of interprogram-cut/paste-function.
+;; - gui-get-primary-selection is used to get the PRIMARY selection,
+;; specifically for mouse-yank-primary.
+;; - gui-get-selection and gui-set-selection are lower-level functions meant to
+;; access various kinds of selections (CLIPBOARD, PRIMARY, SECONDARY).
+
+;; Currently gui-select-text and gui-selection-value provide gui-methods so the
+;; actual backend can do it whichever way it wants. This means for example
+;; that gui-select-enable-clipboard is defined here but implemented in each and
+;; every backend.
+;; Maybe a better structure would be to make gui-select-text and
+;; gui-selection-value have no associated gui-method, and implement
+;; gui-select-enable-clipboard (and x-select-enable-clipboard) themselves.
+;; This would instead rely on gui-get/set-selection being implemented well
+;; (e.g. currently w32's implementation thereof sucks, for example,
+;; since it doesn't access the system's clipboard when setting/getting the
+;; CLIPBOARD selection).
+
;;; Code:
(defcustom selection-coding-system nil