1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Fix primary selection modification during `term-mouse-paste' (bug#58608)

* lisp/term.el (term-mouse-paste): Prevent the primary selection from
being changed in the process of sending it to the inferior process.
This commit is contained in:
Phil Sainty 2023-03-27 01:06:52 +13:00
parent 1671e2db8a
commit e83df530cf

View file

@ -1372,7 +1372,13 @@ Entry to this mode runs the hooks on `term-mode-hook'."
(run-hooks 'mouse-leave-buffer-hook)
(setq this-command 'yank)
(mouse-set-point click)
(term-send-raw-string (gui-get-primary-selection)))
;; As we have moved point, bind `select-active-regions' to prevent
;; the `deactivate-mark' call in `term-send-raw-string' from
;; changing the primary selection (resulting in consecutive calls to
;; `term-mouse-paste' each sending different text). (bug#58608).
;; FIXME: Why does this command change point at all?
(let ((select-active-regions nil))
(term-send-raw-string (gui-get-primary-selection))))
(defun term-paste ()
"Insert the last stretch of killed text at point."