diff options
author | Eli Zaretskii <eliz@gnu.org> | 2009-07-18 11:13:03 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2009-07-18 11:13:03 +0000 |
commit | f22693fc454b156005fdf786bb26036b1a543df0 (patch) | |
tree | 2075d6afa2e2a638976c131183fa988e51a88b86 /lisp/term/pc-win.el | |
parent | c055a7dc5792ce490514c5f120466c03822a73d1 (diff) | |
download | emacs-f22693fc454b156005fdf786bb26036b1a543df0.tar.gz |
(x-selection-owner-p, x-own-selection-internal)
(x-disown-selection-internal): New functions.
Diffstat (limited to 'lisp/term/pc-win.el')
-rw-r--r-- | lisp/term/pc-win.el | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el index 6fb714c1412..332e151a86f 100644 --- a/lisp/term/pc-win.el +++ b/lisp/term/pc-win.el @@ -227,6 +227,47 @@ support other types of selections." (t (setq x-last-selected-text text)))))) +;; x-selection-owner-p is used in simple.el. +(defun x-selection-owner-p (&optional type) + "Whether the current Emacs process owns the given X Selection. +The arg should be the name of the selection in question, typically one of +the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. +\(Those are literal upper-case symbol names, since that's what X expects.) +For convenience, the symbol nil is the same as `PRIMARY', +and t is the same as `SECONDARY'." + (if x-select-enable-clipboard + (let (text) + ;; Don't die if w16-get-clipboard-data signals an error. + (ignore-errors + (setq text (w16-get-clipboard-data))) + ;; We consider ourselves the owner of the selection if it does + ;; not exist, or exists and compares equal with the last text + ;; we've put into the Windows clipboard. + (cond + ((not text) t) + ((or (eq text x-last-selected-text) + (string= text x-last-selected-text)) + text) + (t nil))))) + +;; x-own-selection-internal and x-disown-selection-internal are used +;; in select.el:x-set-selection. +(defun x-own-selection-internal (type value) + "Assert an X selection of the given TYPE with the given VALUE. +TYPE is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. +\(Those are literal upper-case symbol names, since that's what X expects.) +VALUE is typically a string, or a cons of two markers, but may be +anything that the functions on `selection-converter-alist' know about." + (ignore-errors + (x-select-text value)) + value) + +(defun x-disown-selection-internal (selection &optional time) + "If we own the selection SELECTION, disown it. +Disowning it means there is no such selection." + (if (x-selection-owner-p selection) + t)) + ;; From lisp/faces.el: we only have one font, so always return ;; it, no matter which variety they've asked for. (defun x-frob-font-slant (font which) |