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:
parent
fe185b94ab
commit
c8c5bd2447
@ -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))))))
|
||||||
|
Loading…
Reference in New Issue
Block a user