From c8c5bd244729f6e6b52e35839115fda0d85564fc Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 29 Jun 1995 22:19:13 +0000 Subject: [PATCH] (mouse-selection-click-count-buffer): New variable. (mouse-drag-region): Set it. (mouse-save-then-kill): Test it. --- lisp/mouse.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/mouse.el b/lisp/mouse.el index dbd3ac263f..84daf4b4a9 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -380,6 +380,8 @@ Upon exit, point is at the far edge of the newly visible text." (defvar mouse-selection-click-count 0) +(defvar mouse-selection-click-count-buffer nil) + (defun mouse-drag-region (start-event) "Set the region to the text that the mouse is dragged over. Highlight the drag area as you move the mouse. @@ -400,6 +402,7 @@ release the mouse button. Otherwise, it does not." (1- (nth 3 bounds)))) (click-count (1- (event-click-count start-event)))) (setq mouse-selection-click-count click-count) + (setq mouse-selection-click-count-buffer (current-buffer)) (mouse-set-point start-event) (let ((range (mouse-start-end start-point start-point click-count))) (move-overlay mouse-drag-overlay (car range) (nth 1 range) @@ -655,7 +658,12 @@ If you do this twice in the same position, the selection is killed." ;; Don't let a subsequent kill command append to this one: ;; prevent setting this-command to kill-region. (this-command this-command)) - (if (and (mark t) (> (mod mouse-selection-click-count 3) 0)) + (if (and (save-excursion + (set-buffer (window-buffer (posn-window (event-start click)))) + (and (mark t) (> (mod mouse-selection-click-count 3) 0) + ;; Don't be fooled by a recent click in some other buffer. + (eq mouse-selection-click-count-buffer + (current-buffer))))) (if (not (and (eq last-command 'mouse-save-then-kill) (equal click-posn (car (cdr-safe (cdr-safe mouse-save-then-kill-posn)))))) -- 2.20.1