mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 12:21:25 -08:00
Allow appending to the kill ring with mouse selections
* lisp/bindings.el (ignore-preserving-kill-region): New function. (global-map): Use it. * lisp/mouse.el (mouse-set-region, mouse-drag-region) (mouse-drag-track): Allow appending to kill ring with mouse selections (bug#32747).
This commit is contained in:
parent
694d7984a3
commit
e02ebe9137
2 changed files with 14 additions and 3 deletions
|
|
@ -1339,7 +1339,15 @@ if `inhibit-field-text-motion' is non-nil."
|
|||
;; can use S-tab instead to access that binding.
|
||||
(define-key function-key-map [S-tab] [backtab])
|
||||
|
||||
(define-key global-map [mouse-movement] 'ignore)
|
||||
(defun ignore-preserving-kill-region (&rest _)
|
||||
"Like `ignore', but don't overwrite `last-event' if it's `kill-region'."
|
||||
(declare (completion ignore))
|
||||
(interactive)
|
||||
(when (eq last-command 'kill-region)
|
||||
(setq this-command 'kill-region))
|
||||
nil)
|
||||
|
||||
(define-key global-map [mouse-movement] #'ignore-preserving-kill-region)
|
||||
|
||||
(define-key global-map "\C-t" 'transpose-chars)
|
||||
(define-key esc-map "t" 'transpose-words)
|
||||
|
|
|
|||
|
|
@ -1439,7 +1439,8 @@ command alters the kill ring or not."
|
|||
;; Don't set this-command to `kill-region', so a following
|
||||
;; C-w won't double the text in the kill ring. Ignore
|
||||
;; `last-command' so we don't append to a preceding kill.
|
||||
(let (this-command last-command deactivate-mark)
|
||||
(let ((last-command last-command)
|
||||
this-command deactivate-mark)
|
||||
(copy-region-as-kill beg end)))
|
||||
(if (numberp beg) (goto-char beg))
|
||||
;; On a text terminal, bounce the cursor.
|
||||
|
|
@ -1542,6 +1543,7 @@ is dragged over to."
|
|||
(mouse-drag-and-drop-region start-event)
|
||||
;; Give temporary modes such as isearch a chance to turn off.
|
||||
(run-hooks 'mouse-leave-buffer-hook)
|
||||
(ignore-preserving-kill-region)
|
||||
(mouse-drag-track start-event)))
|
||||
|
||||
;; Inhibit the region-confinement when undoing mouse-drag-region
|
||||
|
|
@ -1751,7 +1753,8 @@ The region will be defined with mark and point."
|
|||
nil start-point))
|
||||
((>= mouse-row bottom)
|
||||
(mouse-scroll-subr start-window (1+ (- mouse-row bottom))
|
||||
nil start-point))))))))
|
||||
nil start-point))))))
|
||||
(ignore-preserving-kill-region)))
|
||||
map)
|
||||
t (lambda ()
|
||||
(funcall cleanup)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue