Allow region-related context menu to be used on selected region with one click

* lisp/mouse.el (mouse-drag-track): Don't deactivate the mark for
the context menu invoked by down-mouse-3.

https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg01577.html
This commit is contained in:
Juri Linkov 2021-09-12 20:55:57 +03:00
parent bd917088e6
commit aa33e38e21

View file

@ -1583,8 +1583,15 @@ The region will be defined with mark and point."
t (lambda ()
(setq track-mouse old-track-mouse)
(setq auto-hscroll-mode auto-hscroll-mode-saved)
(deactivate-mark)
(pop-mark)))))
;; Don't deactivate the mark when the context menu was invoked
;; by down-mouse-3 immediately after down-mouse-1 and without
;; releasing the mouse button with mouse-1. This allows to use
;; region-related context menu to operate on the selected region.
(unless (and context-menu-mode
(eq (car-safe (aref (this-command-keys-vector) 0))
'down-mouse-3))
(deactivate-mark)
(pop-mark))))))
(defun mouse--drag-set-mark-and-point (start click click-count)
(let* ((range (mouse-start-end start click click-count))