From 0aeeaa263edb1baacae67cb9332cce4dc6864d2f Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sun, 15 Jul 2007 19:58:18 +0000 Subject: [PATCH] (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. --- lisp/ChangeLog | 7 +++++++ lisp/emulation/cua-base.el | 15 ++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 29e342f94ea..f880e6899e9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2007-07-15 Juri Linkov + + * 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 * recentf.el (recentf-keep-default-predicate): New defun. diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el index 653597fb83b..b9cbf0118b4 100644 --- a/lisp/emulation/cua-base.el +++ b/lisp/emulation/cua-base.el @@ -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 -- 2.39.2