1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-22 10:26:20 +00:00

(mouse-selection-click-count-buffer): New variable.

(mouse-drag-region): Set it.
(mouse-save-then-kill): Test it.
This commit is contained in:
Richard M. Stallman 1995-06-29 22:19:13 +00:00
parent fe185b94ab
commit c8c5bd2447

View File

@ -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 0)
(defvar mouse-selection-click-count-buffer nil)
(defun mouse-drag-region (start-event) (defun mouse-drag-region (start-event)
"Set the region to the text that the mouse is dragged over. "Set the region to the text that the mouse is dragged over.
Highlight the drag area as you move the mouse. 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)))) (1- (nth 3 bounds))))
(click-count (1- (event-click-count start-event)))) (click-count (1- (event-click-count start-event))))
(setq mouse-selection-click-count click-count) (setq mouse-selection-click-count click-count)
(setq mouse-selection-click-count-buffer (current-buffer))
(mouse-set-point start-event) (mouse-set-point start-event)
(let ((range (mouse-start-end start-point start-point click-count))) (let ((range (mouse-start-end start-point start-point click-count)))
(move-overlay mouse-drag-overlay (car range) (nth 1 range) (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: ;; Don't let a subsequent kill command append to this one:
;; prevent setting this-command to kill-region. ;; prevent setting this-command to kill-region.
(this-command this-command)) (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) (if (not (and (eq last-command 'mouse-save-then-kill)
(equal click-posn (equal click-posn
(car (cdr-safe (cdr-safe mouse-save-then-kill-posn)))))) (car (cdr-safe (cdr-safe mouse-save-then-kill-posn))))))