mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-24 07:20:37 +00:00
Avoid extraneous selection querying if we own the selection
* lisp/select.el (gui--selection-value-internal): Return nil if `gui-backend-selection-owner-p' on window systems where it is reliable.
This commit is contained in:
parent
d6d73224a2
commit
16174d796f
@ -168,20 +168,26 @@ text/plain\\;charset=utf-8)."
|
||||
Call `gui-get-selection' with an appropriate DATA-TYPE argument
|
||||
decided by `x-select-request-type'. The return value is already
|
||||
decoded. If `gui-get-selection' signals an error, return nil."
|
||||
(let ((request-type (if (memq window-system '(x pgtk))
|
||||
(or x-select-request-type
|
||||
'(UTF8_STRING COMPOUND_TEXT STRING text/plain\;charset=utf-8))
|
||||
'STRING))
|
||||
text)
|
||||
(with-demoted-errors "gui-get-selection: %S"
|
||||
(if (consp request-type)
|
||||
(while (and request-type (not text))
|
||||
(setq text (gui-get-selection type (car request-type)))
|
||||
(setq request-type (cdr request-type)))
|
||||
(setq text (gui-get-selection type request-type))))
|
||||
(if text
|
||||
(remove-text-properties 0 (length text) '(foreign-selection nil) text))
|
||||
text))
|
||||
;; The doc string of `interprogram-paste-function' says to return
|
||||
;; nil if no other program has provided text to paste.
|
||||
(unless (and (memq window-system '(x haiku))
|
||||
;; gui-backend-selection-p might be unreliable on other
|
||||
;; window systems.
|
||||
(gui-backend-selection-owner-p type))
|
||||
(let ((request-type (if (memq window-system '(x pgtk))
|
||||
(or x-select-request-type
|
||||
'(UTF8_STRING COMPOUND_TEXT STRING text/plain\;charset=utf-8))
|
||||
'STRING))
|
||||
text)
|
||||
(with-demoted-errors "gui-get-selection: %S"
|
||||
(if (consp request-type)
|
||||
(while (and request-type (not text))
|
||||
(setq text (gui-get-selection type (car request-type)))
|
||||
(setq request-type (cdr request-type)))
|
||||
(setq text (gui-get-selection type request-type))))
|
||||
(if text
|
||||
(remove-text-properties 0 (length text) '(foreign-selection nil) text))
|
||||
text)))
|
||||
|
||||
(defun gui-selection-value ()
|
||||
(let ((clip-text
|
||||
|
Loading…
Reference in New Issue
Block a user