1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-27 08:43:40 -07:00

(x-select-text): Never set the CLIPBOARD selection.

(x-cut-buffer-or-selection-value): Try PRIMARY before cut buffer.
(x-cut-buffer-max): Set based on x-server-max-request-size.
This commit is contained in:
Richard M. Stallman 1993-07-25 20:30:04 +00:00
parent 799412761b
commit 2666a6a5b9

View file

@ -491,23 +491,21 @@ This returns ARGS with the arguments that have been processed removed."
;;; from x-cut-buffer-or-selection-value.
(defvar x-last-selected-text nil)
;;; It is said that overlarge strings are slow to put into the cut buffer,
;;; and would crash the clipboard.
(defvar x-cut-buffer-max 20000
"Max number of characters to put in the cut buffer or clipboard.")
;;; It is said that overlarge strings are slow to put into the cut buffer.
(defvar x-cut-buffer-max (min (- (/ (x-server-max-request-size) 2) 100)
20000)
"Max number of characters to put in the cut buffer.")
;;; Make TEXT, a string, the primary and clipboard X selections.
;;; If you are running xclipboard, this means you can effectively
;;; have a window on a copy of the kill-ring.
;;; Make TEXT, a string, the primary X selection.
;;; Also, set the value of X cut buffer 0, for backward compatibility
;;; with older X applications.
;;; gildea@lcs.mit.edu says it's not desirable to put kills
;;; in the clipboard.
(defun x-select-text (text &optional push)
;; Don't send the cut buffer too much text.
;; It becomes slow, and if really big it causes errors.
(if (< (length text) x-cut-buffer-max)
(progn
(x-set-cut-buffer text push)
(x-set-selection 'CLIPBOARD text))
(x-set-cut-buffer text push)
(x-set-cut-buffer "" push))
(x-set-selection 'PRIMARY text)
(setq x-last-selected-text text))
@ -518,12 +516,12 @@ This returns ARGS with the arguments that have been processed removed."
(defun x-cut-buffer-or-selection-value ()
(let (text)
;; Consult the cut buffer, then the selection. Treat empty strings
;; Consult the selection, then the cut buffer. Treat empty strings
;; as if they were unset.
(setq text (x-get-cut-buffer 0))
(if (string= text "") (setq text nil))
(or text (setq text (x-get-selection 'PRIMARY)))
(if (string= text "") (setq text nil))
(setq text (x-get-cut-buffer 0))
(if (string= text "") (setq text nil))
(cond
((not text) nil)