Commit c8c5bd24 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

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

(mouse-drag-region): Set it.
(mouse-save-then-kill): Test it.
parent fe185b94
...@@ -380,6 +380,8 @@ Upon exit, point is at the far edge of the newly visible text." ...@@ -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." ...@@ -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." ...@@ -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))))))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment