From: Phil Sainty Date: Sun, 26 Mar 2023 12:06:52 +0000 (+1300) Subject: Fix primary selection modification during `term-mouse-paste' (bug#58608) X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e83df530cf715d3130e6f34f015d901527f79b5b;p=emacs.git 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. --- diff --git a/lisp/term.el b/lisp/term.el index 3e4907e8bfc..2e719567058 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -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."