1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 12:21:25 -08:00

(cua-paste): Before a yank command,

check also whether last-command is one of mouse-save-then-kill,
mouse-secondary-save-then-kill, mouse-set-region, mouse-drag-region.
This commit is contained in:
Juri Linkov 2007-07-15 19:58:18 +00:00
parent 195d88f474
commit 0aeeaa263e
2 changed files with 17 additions and 5 deletions

View file

@ -1,3 +1,10 @@
2007-07-15 Juri Linkov <juri@jurta.org>
* delsel.el (delete-selection-pre-hook):
* emulation/cua-base.el (cua-paste): Before a yank command,
check also whether last-command is one of mouse-save-then-kill,
mouse-secondary-save-then-kill, mouse-set-region, mouse-drag-region.
2007-07-15 Michael Albinus <albinus@localhost>
* recentf.el (recentf-keep-default-predicate): New defun.

View file

@ -898,9 +898,6 @@ If global mark is active, copy from register or one character."
(t
;; Must save register here, since delete may override reg 0.
(if mark-active
;; Before a yank command, make sure we don't yank
;; the same region that we are going to delete.
;; That would make yank a no-op.
(if cua--rectangle
(progn
(goto-char (min (mark) (point)))
@ -908,8 +905,16 @@ If global mark is active, copy from register or one character."
(setq paste-lines (cua--delete-rectangle))
(if (= paste-lines 1)
(setq paste-lines nil))) ;; paste all
(if (string= (filter-buffer-substring (point) (mark))
(car kill-ring))
;; Before a yank command, make sure we don't yank the
;; head of the kill-ring that really comes from the
;; currently active region we are going to delete
;; (when last-command is one that uses copy-region-as-kill
;; or kill-new). That would make yank a no-op.
(if (and (string= (filter-buffer-substring (point) (mark))
(car kill-ring))
(memq last-command
'(mouse-set-region mouse-drag-region
mouse-save-then-kill mouse-secondary-save-then-kill)))
(current-kill 1))
(cua-delete-region)))
(cond